Laravel有很多关系不能正常工作

use*_*046 3 php laravel eloquent laravel-4

我是Laravel模型关系的新手,我正在尝试通过构建一个基本的论坛系统来学习它.我试图将fourms属于论坛类别:

这是我的ForumCategory模型:

class ForumCategory extends Eloquent {

    protected $table = 'forum_categories';

      public function forums()
    {
        return $this->hasMany('Forum','category_id');
    }
}
Run Code Online (Sandbox Code Playgroud)

论坛模型名称为Forum,外键为category_id.

这是论坛模型:

class Forum extends Eloquent {

    protected $table = 'forums';
}
Run Code Online (Sandbox Code Playgroud)

以下是我尝试测试它的方法:

$category=ForumCategory::find(1);
print_r($category->forums());
Run Code Online (Sandbox Code Playgroud)

但是我从print_r获得的是一个非常大的对象,而不是相关的论坛.

谢谢.

Jof*_*yHS 5

在调用这种关系时,你想要的是Eloquent的动态属性.

为了显示:

// Return you chainable queries    
$query = ForumCategory::find(1)-> forums()->... 
// To actually return the forums
// You need to use get() since it is a chainable query builder
$query = ForumCategory::find(1)-> forums()->get();

// BUT, you can use Eloquent dynamic property
// Notice no '()'
// Return you collection of forums
$patientsCollection = ForumCategory::find(1)-> forums;
Run Code Online (Sandbox Code Playgroud)

基本上你现在拥有的是QueryBuilder.

更多相关内容:http://laravel.com/docs/eloquent#querying-relations