一对多关系不起作用

时间:2014-01-05 14:09:23

标签: php laravel-4 relationship eloquent

我与模特有一对多的关系

class Article extends Eloquent {
    protected $table = 'articles';
    public function categories()
    {
        return $this->belongsTo('ArticleCategory');
    }
}

ArticleCategory

class ArticleCategory extends Eloquent {
    protected $table = 'articles_categories';
    public function articles()
    {
        return $this->hasMany('Article');
    }
}

在我的控制器中,我试图从类别中抓取所有文章

$categories = ArticleCategory::find(1);
$article = $categories->articles;
return $article;

并且效果很好。

但是当我试图做出反向

$article = Article::find(1);
$category = $article->categories;
return $category;

我得到了null。我应该在find()中获得文章ID的类别返回。

  

数据库表:
   - 文章:Id |标题|描述| CATEGORY_ID
   - articles_categories:Id |标题

1 个答案:

答案 0 :(得分:0)

由于一对多关系,您可以轻松地执行此操作

$category = ArticleCategory::find($article->category_id);

我认为错误在于数据库字段中的命名。 articles表格中指向articles_categories的字段应为articles_categories_id

试试这个

public function categories()
{
    return $this->belongsTo('ArticleCategory','category_id');
}