我想为我的模型使用不同的过滤器,但它们都是可选的。
<OpenIDConnectStrategy> = require(<passport-openid-connect>).Strategy;
passport.use('...', new <OpenIDConnectStrategy>({
因此,只有第一个语句成功时才会运行此代码。
if($foo) {
$model = Model::where('id', 1);
}
if($bar) {
$model = $model->where('age', 3);
}
这样可行,但很脏:(
那么可以将模型保存到变量中,这样我就不必在所有if语句中进行静态调用了吗?
答案 0 :(得分:2)
https://laravel.com/api/5.4/Illuminate/Database/Eloquent/Model.html#method_query
https://laravel.com/api/5.4/Illuminate/Database/Query/Builder.html#method_when
var oModel = new sap.ui.model.json.JSONModel();
oModel.loadData("json/Product.json");
答案 1 :(得分:1)
你可以在where函数中创建过滤器,这样可以很好地将它们组合在一起。
例如:
$models = Model::where(function ($query) use ($request) {
$query->where('id', '<>' -1);
if ($request->has('id')
$quer->where('id', $request->id);
if ($request->has('age'))
$query->where('age', $request->age);
})->get();