Kha*_* Bz 5 php where-clause eloquent laravel-5.2
我正在尝试创建((Where and Where)OR(Where and Where))经过大量搜索,我发现了这一点
$sender = \App\User::where('username','=',$username)->firstOrFail();
$receiver = Auth::user();
$messages = \App\Message::Where(function($query)
{
$query->where("sender",$sender->id)
->where("receiver",$receiver->id);
})
->orWhere(function($query)
{
$query->Where("sender",$receiver->id)
->Where("receiver",$sender->id);
})
->get();
Run Code Online (Sandbox Code Playgroud)
但它告诉我$ sender和$ receiver变量是未定义的,请帮忙,我正在尝试显示两个用户的消息,我还想我可以单独获取第一个(在哪里和哪里)然后得到第二个,然后我将合并它们.
要使用$send与$receiver内Closure执行下列操作;
function ($query) use($sender, $receiver){
}
Run Code Online (Sandbox Code Playgroud)
允许您访问该函数范围内的变量.
所以你的解决方案成了
$messages = \App\Message::Where(function($query) use ($sender, $receiver)
{
$query->where("sender",$sender->id)
->where("receiver",$receiver->id);
})
->orWhere(function($query) use ($sender, $receiver)
{
$query->Where("sender",$receiver->id)
->Where("receiver",$sender->id);
})
->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3865 次 |
| 最近记录: |