0
我有下面的代码工作,但似乎并没有跟随laravel雄辩的语言:Laravel 3雄辩ORM使用
Article::left_join('images', 'articles.id', '=', 'images.article_id')
->join('article_category', 'articles.id', '=', 'article_category.article_id')
->where('article_category.category_id', '=', $category_id)
->get();
我有4个表;具有彼此多对多关系的文章和类别,保存文章ID和类别ID的数据透视表article_category表,以及与文章具有一对一关系的图像表。
设置我的模型为:
class Category extends Eloquent {
public static function get_articles($category_id) {
return static::find($category_id)->has_many_and_belongs_to('Article');
}
class Article extends Eloquent {
public function categories() {
return $this->has_many_and_belongs_to('Category');
}
public function image() {
return $this->has_one('Image');
}
但是我似乎无法信息的所有三位凑在一起。我可以这样做:
Category::get_articles($current_category)->get();
为了获得给定类别中的所有文章,但我似乎无法获得图像的文章,似乎有什么我可以链迈上?除非我做错了吗?有没有我错过的技巧?
我甚至从文档尝试了精简版:
foreach (Article::with('image')->get() as $article) {
echo $article->image->foo;
}
不过,我得到一个错误:试图让非对象的属性,即使显示的var_dump $物品─>图像是一个对象!奇怪的。
谢谢