向 Laravel 中的查询添加新的 WHERE 语句
Adding new WHERE statements to a query in Laravel
我在 Laravel Eloquent 中做一个 foreach 循环,在每个 foreach 中我需要向 SQL 查询添加一个新的 Where 语句。我已经试过了,但它不起作用:
$list = Records::whereNull('deleted_at');
foreach ($search as $keyword)
{
$list = $list->orWhere("title", 'like', '%'.$restriction.'%');
}
$list = $list->get();
这应该 return:
$list = Records::whereNull('deleted_at')->orWhere("title", 'like', '%'.$restriction[0].'%')->orWhere("title", 'like', '%'.$restriction[1].'%')->get();
但似乎return所有记录。请注意,我只在其中添加 whereNull('deleted_at') ,否则我有 orWhere 而没有另一个 where 语句。
有没有办法做到这一点?
用 $keyword
代替 $restriction
$list = Records::whereNull('deleted_at');
foreach ($search as $keyword)
{
$list = $list->orWhere("title", 'like', '%'.$keyword.'%');
}
$list = $list->get();
我在 Laravel Eloquent 中做一个 foreach 循环,在每个 foreach 中我需要向 SQL 查询添加一个新的 Where 语句。我已经试过了,但它不起作用:
$list = Records::whereNull('deleted_at');
foreach ($search as $keyword)
{
$list = $list->orWhere("title", 'like', '%'.$restriction.'%');
}
$list = $list->get();
这应该 return:
$list = Records::whereNull('deleted_at')->orWhere("title", 'like', '%'.$restriction[0].'%')->orWhere("title", 'like', '%'.$restriction[1].'%')->get();
但似乎return所有记录。请注意,我只在其中添加 whereNull('deleted_at') ,否则我有 orWhere 而没有另一个 where 语句。
有没有办法做到这一点?
用 $keyword
代替 $restriction
$list = Records::whereNull('deleted_at');
foreach ($search as $keyword)
{
$list = $list->orWhere("title", 'like', '%'.$keyword.'%');
}
$list = $list->get();