laravel查找或尝试获取非对象的属性失败

o8x7eapl  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(239)

我对laravel很陌生,正在尝试理解这个框架。
我有一个名为“matches”的db表和一个名为“logs”的db表。
这两个表具有名为“match\u id”的自定义id。
我想把原木拿出来做个定制。例子:

$match->chatMessage = DB::table('logs')->where('match_id', '=', $match->match_id)->first()->message;

很好用。但是,如果“matches”没有找到任何带有自定义match\u id的行,该怎么做呢?
现在我犯了个错误 Trying to get property of non-object 谢谢你的回答!

h79rfbju

h79rfbju1#

您可以使用->firstorfail()并在某处捕获一般异常。此外,您不必在where语句中使用“=”,因为默认情况下是这样做的。

pftdvrlh

pftdvrlh2#

您需要条件来检查记录是否存在

$record = DB::table('logs')->where('match_id', '=', $match->match_id)->first();
if($record)
{
    $match->chatMessage = $record->message;
}

更新与要使用的相同id匹配的多个记录 get() ```
$records = DB::table('logs')->where('match_id', '=', $match->match_id)->get(['id','message']); // Here you only select id,message from this model
if($records)
{
foreach($records as $log){
echo $log->message;
// Add these message in one array for further use
}
}

相关问题