我在Laravel 5.2上。如果匹配查询的给定条件,如何筛选特定列?
例如我有一个像
这样的记录column [id] => '1',列[用户名] => 'id_45820',列[内容] => 'test',列[to] => 'admin,id_45820,user',列[created_at] => ', 专栏[updated_at] => ''
我有2个变量作为标准
$role = 'user';
$username = 'id_45820';
现在我想要使用'$ role'和'$ username'变量来过滤'to'列,如果'$ role'或'$ username'或两者都匹配'to'的内容'列(用逗号分隔)然后拉那条记录,这可能吗?
$q = notifications::where(function($query){
//I just don't know how to do it. Help please?
})->get();
答案 0 :(得分:1)
如果我正确理解你的问题,那么:
$role = 'user';
$username = 'id_45820';
$q = notifications::where(function($query) use($role, $username) {
$query->where('to', 'like', "%{$role}%")
->orWhere('to', 'like', "%{$username}%");
})->get();
正如您所说,您想要检查是否存在其中一种或两种,那么您只需要检查是否存在。
希望这有帮助!
答案 1 :(得分:1)
$q=notifications::where('to', 'like', '%' . $role . '%')
->orWhere('to', 'like', '%' . $user . '%')
->get();