下午好,我的系统有问题,我需要在一个选择中使用2个条件,然后用while显示所有记录,但因为我很容易接受一点。
我的控制器
public function index()
{
$users = DB::select('select * from users where id = :id', ['id' => 1]);
$id = $users->id;
$chats = DB::table('chat')->where('idremetente', $id)->where('iddestino', $id)->get();
$atual = date('m');
$aniversariante = DB::select("select * from users where MONTH(nascimento) = '{$atual}'");
return view('home', [
'users' => $users,
'aniversariante' => $aniversariante,
'chats' => $chats,
]);
}
我的看法
@foreach($chats as $chat)
@endforeach
{{chat->id}}
DB::select()
用于执行原始语句,而不是查询构建器。
如果要使用查询构建器,则需要使用DB::table()
:
$chats = DB::table('chat')->where('idremetente', $id)->where('iddestino', $id)->get();
在使用查询构建器时,您必须执行查询并使用get()
获取结果。
阅读文档中raw statements和query builder之间的区别。
用于多重条件
$chats = DB::table('chat')->where('idremetente', $firstConditionValue)->where('iddestino', $secondConditionValue)->get();
给你的控制器
public function index()
{
$users = DB::table('user')->where('id', 1)->get();
$id = $users->id;
$chats = DB::table('chat')->where('idremetente', $id)->where('iddestino', $id)->get();
$atual = date('m');
$aniversariante = DB::table('user')->where('nascimento', $atual)->get();
return view('home', compact('users','aniversariante','chats'));
}
而你的观点
@foreach($chats as $chat)
{{chat->id}}
@endforeach
试试这个吧