我正在 Laravel 4 中开发一个小项目,我需要检查用户是否完成了任务。 当用户完成任务时,会在“certificates”表中插入一条记录,其中包含他的 user_id 和他完成的部分的编号。
在各部分的索引中,我只需要启用他完成的那些部分和当前的部分。 如何获取 Controller 中证书表中的所有用户证书? 换句话说,如何在“部分” Controller /模型中选择证书表上带有 user_id 的所有项目?
节 Controller 中的函数是:
public function getIndex() {
$items = Item::orderBy('id','asc')->paginate(0);
return View::make('home')->with('items', $items);
}
提前致谢。
最佳答案
假设您有 users
、certificates
和 sections
表以及相应的模型(至少有 User
和 >Section
),并且您的certificates
表有一个user_id
和一个section_id
,您可以使用多对-许多关系:
class User extends Eloquent
{
public function sections()
{
return $this->belongsToMany('Section', 'certificates');
}
}
现在,您可以访问 $user->sections
,这将为您提供用户完成的集合(假设这就是您使用 certificates
表的用途) 。它的作用基本上是获取user
的id,在user_id
列的certificates
表中查找,获取所有 >section_ids
,在 sections
表中查找这些内容并返回与结果行相对应的模型实例集合。
关于php - 如何在 Laravel 4 的 Controller 中从其他模型获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27902174/