Laravel 쿼리는 더 이상 if else 판단을 많이 작성할 필요가 없습니다!

藏色散人
풀어 주다: 2021-04-08 08:42:09
앞으로
2361명이 탐색했습니다.

다음laravel튜토리얼 칼럼에서는 "Laravel 쿼리는 더 이상 많은 ifelse 판단을 작성할 필요가 없으며 구성만 하면 됩니다"를 소개할 예정인데, 필요한 친구들에게 도움이 되길 바랍니다!

Laravel 쿼리는 더 이상 if else 판단을 많이 작성할 필요가 없습니다!

Background

회사의 주요 사업은 PHP 언어와 laravel 프레임워크를 사용하여 개발됩니다. 일부 목록 필터링 쿼리를 수행할 때 유지 관리하기 어려운 다음 코드가 자주 나타납니다.

//若干代码 根据参数执行不同where if (request('has_score')) { $article = $article->with(['scores' => function ($query) { $query->where('type', self::TYPE); $query->with('user'); }]); } if (has_module('Audit')) { $article = $article->with(['auditing' => function ($query) { $query->orderBy('id', 'desc'); }]); } $article = $article->with(['videos' => function ($query) { $query->where('type', VIDEO); }])->with(['audios' => function ($query) { $ query->where('type', AUDIO); }]);
로그인 후 복사

Solution

이 쿼리가 가능하다면 configure 코드에서 직접 판단하는 대신 구성에 따라 데이터를 쿼리하여 코드를 더욱 우아하게 만듭니다. 저는 서비스 패키지 laravel-query-builder를 직접 개발했습니다.

laravel-query-builder는 기존 구성을 기반으로 쿼리 조건 빌더 서비스 패키지를 실행하는 laravel 프레임워크입니다.

Install

composer require zyimm/laravelquery-builder
로그인 후 복사

Require

{ "require": { "php": ">=7.0", "fideloper/proxy": "^4.0", "laravel/framework": ">=5.5" } }
로그인 후 복사

Usage

/** // 目前支持条件操作符 '=', '', '>', '>=', ' 20, 'user_id'=> 'zyimm', 'user_name' => "zyimm,12" ]; //配置数据库字段查询操作 $condition =[ '=' => [ 'log_id' ], 'not_in' => [ 'user_id' ], 'between' => [ 'user_name' ], 'full_like' => [ 'user_id' ], '' => [ 'user_id' ], '>' => [ 'user_id' ] ]; DB::enableQueryLog(); //model \App\Models\Log::query() ->where(function ($query) use ($build, $data, $condition){ $build->buildQueryWhere($data ,$condition, $query); })->get(); dd(DB::getQueryLog());
로그인 후 복사

다음과 같이 SQL 쿼리 레코드를 생성합니다.
Laravel 쿼리는 더 이상 if else 판단을 많이 작성할 필요가 없습니다!

팁:
'in','not_in','between','not_between'이러한 식별자는 배열과 문자열을 지원하며 문자열은 선택적으로 ',' 및 '.'을 구분 기호로 사용할 수 있습니다.

너무 간단해서 코드를 더 우아하게 만들 수 있어요!

프로젝트 주소

팁: laravel-query-builderp (https://github.com/zyimm/laravel-query-builder)
관련 권장 사항:
최근 5개의 Laravel 비디오 튜토리얼

위 내용은 Laravel 쿼리는 더 이상 if else 판단을 많이 작성할 필요가 없습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!