我有一个表,用于存储有关事件的信息。该事件具有位置属性(字符串)。现在,我有了一个表locations
表,该表存储位置名称及其地址。
现在,我想从数据库中获取所有事件及其位置。
因为我从外部来源获得了所有事件,所以不能使用id来建立关系。
所以我需要的是一种像$this->hasOne('Location')->where('name','LIKE','%location_name%');
像这样可能吗?如果没有,那么实现这种目标的最佳实践是什么,因此我将获得如下输出JSON:
{
"name":"Event Abc",
"date":"2019-10-18 12:00:00",
"location":"Location X",
"location_details": {
"name":"Location X",
"address":"Street XYZ"
}
}
谢谢
答案 0 :(得分:-1)
是的,有可能。但是您几乎不需要修改。所以让我们知道发生了什么
function location () {
return $this->hasOne('App\Location')->where('name','LIKE','%location_name%')->get();
}
然后从您的控制器中调用
$eventsWithlocation = Event::with('location')->first();
dd($eventsWithlocation);