我有四个模型:动物(只能是“狗”或“猫”),类别,品种和张贴。
表格数据:
动物: - ID -名称
类别: - ID - 名称 -animal_id
品种: - ID - 名称 -category_id
帖子: - ID -品种编号
我需要得到所有关于狗的信息。有什么想法吗?
更新: 我的模特:
class Animal extends Model
{
public function categories()
{
return $this->hasMany(Category::class)->orderBy('name', 'ASC');
}
}
class Category extends Model
{
public function animal()
{
return $this->belongsTo(Animal::class);
}
public function breeds()
{
$this->hasMany(Breed::class)->orderBy('name', 'ASC');
}
}
class Breed extends Model
{
public function category()
{
return $this->belongsTo(Category::class);
}
public function posts()
{
return $this->hasMany(Posts::class);
}
}
class Posts extends Model
{
public function breed()
{
return $this->belongsTo(Breed::class);
}
}
答案 0 :(得分:0)
首先,您需要在雄辩的模型中正确建立关系, 这是一个代码示例,
对于后口才模型 并且发布必须具有列animal_id
public function animal(){
return $this->belongsTo(Animal::class);
}
然后您必须查询类似
$posts = Post::whereHas('animal',function($q){
return $q->where('name','dog');});
此后,您将获得属于动物数据的帖子,其中动物名字是dog。而且,如果您要查询当前的数据库结构,由于查询时间长且不建议使用,则不建议这样做。