//若干代码 根据参数执行不同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); }]);
ログイン後にコピー
composer require zyimm/laravelquery-builder
ログイン後にコピー
Requirecomposer require zyimm/laravelquery-builder
ログイン後にコピー
{
"require": {
"php": ">=7.0",
"fideloper/proxy": "^4.0",
"laravel/framework": ">=5.5"
}
}
ログイン後にコピー
Usage { "require": { "php": ">=7.0", "fideloper/proxy": "^4.0", "laravel/framework": ">=5.5" } }
ログイン後にコピー
/**
// 目前支持条件操作符
'=',
'',
'>',
'>=',
' 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 クエリ レコードを生成します: /** // 目前支持条件操作符 '=', '', '>', '>=', ' 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());
ログイン後にコピー
ヒント:
'in','not_in',' between' ,'not_between'これらの識別子は配列と文字列をサポートします。文字列には区切り文字としてオプションの「,」と「.」があります。
非常にシンプルなので、コードをよりエレガントにすることができます。
プロジェクトアドレス
ヒント: laravel-query-builderp(https://github.com/zyimm/laravel-query-builder)
関連する推奨事項:最新の 5 つの Laravel ビデオ チュートリアル