拉雷维尔口才出众的ORM初学者

拉雷维尔口才出众的ORM初学者,orm,laravel,eloquent,Orm,Laravel,Eloquent,我试着提出一个简单的要求。 假设登录用户有“项目”。 假设“项目”有很多“评论” 我尝试从用户那里获取所有项目,并按项目列出所有注释 我有一个名为“用户”、“项目”、“评论”的表格。 用户由哨兵管理 我有两个模型:项目和评论: class Project extends Eloquent { ... } class Comment extends Eloquent { ... } 在我的“项目”模型中,我有: public function comments() { return $t

我试着提出一个简单的要求。 假设登录用户有“项目”。 假设“项目”有很多“评论”

我尝试从用户那里获取所有项目,并按项目列出所有注释

我有一个名为“用户”、“项目”、“评论”的表格。 用户由哨兵管理

我有两个模型:项目和评论:

class Project extends Eloquent { ... }
class Comment extends Eloquent { ... }
在我的“项目”模型中,我有:

public function comments()
{
    return $this->hasMany('Comment');
}
在我的控制器里我有这个

$projects = Project::comments()->paginate(10);
而且。。。不起作用。 以最好的方式,我想要这样的东西

$projects = Project::comments()->where('projects.account_id', '=', Sentry::getUser()->id)->paginate(10);
你能帮我吗

编辑 好的,现在,我修改了这样的模型

$projects = Project::comments()->where('projects.account_id', '=', Sentry::getUser()->id)->paginate(10);
用户模型:

public function project()
{
    return $this->hasMany('Project');
}
项目模式:

public function user()
{
    return $this->belongsToMany('User');
}
public function project()
{
    return $this->belongsToMany('Projects');
}
评论模式:

public function user()
{
    return $this->belongsToMany('User');
}
public function project()
{
    return $this->belongsToMany('Projects');
}
在我的控制器中:

$projects = User::with( array('project', 'project.comments') )->find( Sentry::getUser()->id );
Laravel在我的刀片循环中说“尝试获取非对象的属性”:

@foreach ($projects as $project)
    {{ $project->slug }}
@endforeach
差不多

编辑 好的,很好。我修改了我的视图,没问题。
感谢所有

如果您想从用户那里获得所有项目,以及该项目的所有注释,则需要执行以下操作:
user::with(array('projects','projects.comments')->find(Sentry::getUser()->id)


这将抓取当前用户,并加载与该项目相关的所有项目和项目注释

Laravel说:对未定义方法Illumb\Database\Query\Builder::hasManyThrough()的调用对我来说不起作用。项目没有用户id,而是帐户id。正因为如此?您的关系设置不正确。你需要首先确保雄辩的关系被正确地建立起来。这看起来更像是拉雷维尔的版本对于他想要做的事情是不正确的
hasManyThrough
是Laravel 4.1的新版本,您确定要使用4.1吗?是的,确定@bgallagh3r我已经修复了这个问题,现在项目有了用户id并且没有效果。废话。