我对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
谢谢你的回答!
2条答案
按热度按时间h79rfbju1#
您可以使用->firstorfail()并在某处捕获一般异常。此外,您不必在where语句中使用“=”,因为默认情况下是这样做的。
pftdvrlh2#
您需要条件来检查记录是否存在
更新与要使用的相同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
}
}