【问题标题】:CakePHP 3.0: Get model data from two degree model of separation in paginationCakePHP 3.0:从分页分离的二度模型中获取模型数据
【发布时间】:2016-04-21 13:23:00
【问题描述】:

现在我很累,所以我无法好好思考。很抱歉,如果这是一个重复的问题并且我的英语很奇怪。

在 CakePHP 3.0 中,我有模型“Asistencias”。与“Ejecutivos”相关联。 所以,在 asistencias 表中,我有 de FK ejecutivo_id 并且当我尝试从 ejecutivos 表访问数据时工作正常,因为我做了正确的声明:

$this->paginate = [
            //'contain' => ['Sucursales', 'Cedentes', 'Ejecutivos'],
            'contain' => ['Ejecutivos'],
            'limit'=>100,
            'order'=>['Asistencias.entrada'=>'DESC', 'Ejecutivos.nombre'=>'DESC']               
    ];

如您所见,我已对第 2 行进行了注释。我从 Asistencias 中删除了 Cedentes 和 Sucursales 的关联。

现在,FKs sucursal_id 和 cedente_id 属于 ejecutivos 表,而不是 asistencias 表。它可以帮助我在 CakePHP 中完成您不感兴趣的其他任务。

我的问题是如何以有效的方式访问 Sucursales 和 Cedentes?我想我不能从 paginate 属性中的 contain 调用它们。

我想在我的视图中这样使用它们:

//index.ctp
foreach($asistencias as $asistencia){
  echo $asistencia->ejecutivos->name;
  echo $asistencia->ejecutivos->sucursal->name;
  echo $asistencia->ingreso;
  echo $asistencia->salida;
}

我只是不记得正确的方法。你能帮帮我吗?

【问题讨论】:

    标签: cakephp model-view-controller model cakephp-3.0


    【解决方案1】:

    您可以嵌套包含以获得所需的结果。

    $this->paginate = [
            'contain' => [
                  'Ejecutivos' => [
                         'Sucursales', 'Cedentes', 
                   ],
            ],
            'limit'=>100,
            'order'=>['Asistencias.entrada'=>'DESC', 'Ejecutivos.nombre'=>'DESC']               
    ];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-29
      • 2016-09-28
      相关资源
      最近更新 更多