Php Laravel 5 SQL关系
我对Laravel中的查询有一些问题。 我想在服务器表中按列创建一个筛选器查询,但我不知道如何做到这一点 需要帮助来修改以下行:Php Laravel 5 SQL关系,php,sql,laravel,laravel-5,Php,Sql,Laravel,Laravel 5,我对Laravel中的查询有一些问题。 我想在服务器表中按列创建一个筛选器查询,但我不知道如何做到这一点 需要帮助来修改以下行: $data = $video->files()->with('server')->get(); 型号:服务器 public function files() { return $this->hasMany('App\Models\File', 'id', 'server_id'); } 型号:文件 public function s
$data = $video->files()->with('server')->get();
型号:服务器
public function files()
{
return $this->hasMany('App\Models\File', 'id', 'server_id');
}
型号:文件
public function server()
{
return $this->belongsTo('App\Models\Server', 'server_id', 'id')->ordered();
}
我当前的查询返回以下内容:
(但它返回了所有,我只需要返回type=6的文件,这是服务器表)我不需要;我不知道怎么做。在下面的屏幕上,有关类型服务器的数据位于#关系数组上
使用
WhereHas
。将关系名称和闭包作为参数,您可以使用关系定义类似子查询的功能
$data = $video->files()->with('server')->whereHas('server', function ($query)
{
$query->where('type', '6');
})->get();
嘿,请清除您的表关系,因为它太混乱而无法理解。试图从服务器表中获取关系时,是否对视频表启动查询?这没有道理。视频表和服务器表之间的关系是什么?视频包含有关名称、大小和视图的数据。一个视频可以在几个服务器上,因此在文件表I中,文件存储在哪些服务器上。服务器有关于服务器的数据,因为不仅仅是一个检查现在第一篇文章。我添加了新的img。