现在我有了新闻类别、新闻和新闻图像表格结构,如:

我想列个清单如下:

我是如何用雄辩的关系( whereHas或Has )来制作这样的列表的?
PS:有时新闻没有图像
发布于 2014-05-22 09:09:28
假设您的模型名为Category,并且有一个名为news的关系,它进一步具有一个名为image的关系,那么您只需执行以下操作。
$categories = Category::with(['news', 'news.image'])->all();这将抓取所有类别与他们的新闻,以及形象关系,如果他们有一个。
如果你没有建立良好的关系,情况会是这样的。
类别模式:
<?php
class Category extends Eloquent
{
protected $table = 'category';
public function news()
{
return $this->hasMany('News');
}
}新闻模式:
<?php
class News extends Eloquent
{
protected $table = 'news_main';
public function category()
{
return $this->belongsTo('Category');
}
public function image()
{
return $this->hasOne('NewsImage');
}
}新闻形象模型:
<?php
class NewsImage extends Eloquent
{
protected $table = 'news_img';
public function news()
{
return $this->belongsTo('News', 'id_news');
}
}注意事项
可能值得更改表和一些字段的名称,以便对命名结构有更一致和更合理的感觉。
categories category_idnews news_idnews_imageshttps://stackoverflow.com/questions/23799581
复制相似问题