php - 如何在 Laravel 4 的 Controller 中从其他模型获取数据

标签 php mysql laravel

我正在 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);
  }

提前致谢。

最佳答案

假设您有 userscertificatessections 表以及相应的模型(至少有 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/

相关文章:

php - 如何将参数或参数传递给 Laravel Envoy 任务

php - MySQL 对相同数据集但不同线程的荒谬行为

mysql - RODBC 字符串被截断

PHP函数用字符代码替换符号以停止SQL注入(inject)

php - 请参阅 laravel 中的 select 与 eloquent

php - 当有数量和价格时,在 eloquent laravel 中使用 sum

php - ReflectionException - 类 DatabaseSeeder 不存在,Laravel Seeder

php - MySQL 按两列排序

php - 错误回波计数

sql - 杀死mysqld进程