我正在尝试加入指定曲目的所有视频,同时加入来自车辆表的品牌和型号。每个视频仅包含来自车辆表的一辆车。我在使用Eloquent语法时遇到困难,无法实现这一点。
我为抓取所有视频而构建的Track模型非常直接,并且运行良好,如下所示:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Track extends Model
{
public function video()
{
return $this->hasMany('App\Video');
}
}
我用车辆模型编写如下:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Video extends Model
{
function vehicle()
{
return $this->hasOne('App\Vehicle');
}
}
三个数据库模型如下所示
:跟踪
视频
车辆
答案 0 :(得分:2)
以下答案假设您的视频()关系效果很好(正如您所说)。但是看看你的数据库模式和模型,你的视频表中没有名为track_id的列,所以我不确定。
您的车辆关系应如下所示(您定义相反):
function vehicle()
{
return $this->belongsTo('App\Vehicle', 'vehicles_id');
}
然后你的查询应该是这样的:
$result = \App\Track::with('video.vehicle')->get()