((地点和地点)或(地点和地点))Laravel 5.2
( (Where and Where) OR (Where and Where) ) 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();
但它告诉我 $sender 和 $receiver 变量未定义,请帮忙,我正在尝试显示两个用户的消息,我还想我可以单独获取第一个(where and where)然后获取第二个然后我将它们合并。
要在 Closure
中使用 $send
和 $receiver
,请执行以下操作;
function ($query) use($sender, $receiver){
}
允许您访问该函数范围内的变量。
所以你的解决方案变成了;
$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();
您需要通过 use
:
传递变量
$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();
我正在尝试创建 ( (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();
但它告诉我 $sender 和 $receiver 变量未定义,请帮忙,我正在尝试显示两个用户的消息,我还想我可以单独获取第一个(where and where)然后获取第二个然后我将它们合并。
要在 Closure
中使用 $send
和 $receiver
,请执行以下操作;
function ($query) use($sender, $receiver){
}
允许您访问该函数范围内的变量。
所以你的解决方案变成了;
$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();
您需要通过 use
:
$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();