【问题标题】:recursive 2 with Cakephp functional递归 2 与 Cakephp 函数
【发布时间】:2016-01-11 05:00:12
【问题描述】:

我需要从find() 的数据中构建一个选择下拉列表。

当我执行递归查找时:

$parlamentarios = $this->Revocatorio->Parlamentario->find('all', array('recursive' => 2));

它返回以下内容:

array(
(int) 0 => array(
    'Parlamentario' => array(
        'id' => '1',
        'postulacion_id' => '4',
        'created' => '2016-01-10 20:29:47',
        'periodo_id' => '1',
        'voto_parlamento' => '4000'
    ),
    'Postulacion' => array(
        'id' => '4',
        'registro_id' => '2',
        'comite_id' => '5',
        'periodo_id' => '1',
        'fecha_elec' => '2016-01-23',
        'created' => '2016-01-03 20:40:18',
        'voto' => '0',
        'Registro' => array(
            'id' => '2',
            'cedula' => '',
            'nacionalidad' => '1',
            'nombre' => '',
            'seg_nombre' => '',
            'apellido' => '',
            'seg_apellido' => '',
            'genero' => true,
            'fecha_nac' => '-',
            'lugar_nac' => 'Portuguesa',
            'fecha_reg' => '2015-12-02',
            'direccion' => 'aijhaoihdwaoih',
            'edad' => '21',
            'foto' => '1 LOGO UNERG.jpg',
            'foto_dir' => '2',
            'leer' => true,
            'escribir' => true,
            'discapacidad' => 'ninguna',
            'aptitud' => true,
            'estado_civil' => 'Casado/a',
            'ccregistro_id' => '0',
            'name' => ' - '
        ),
        'Comite' => array(
            'id' => '5',
            'comite' => 'awdawdawdawd'
        ),
        'Periodo' => array(
            'id' => '1',
            'periodo' => '2015-2017'
        ),
        'Escrutinio' => array(),
        'Revocatorio' => array()
    ),
    'Periodo' => array(
        'id' => '1',
        'periodo' => '2015-2017',
        'Ccregistro' => array(),
        'Escrutinio' => array(),
        'Postulacion' => array(
            (int) 0 => array(
                'id' => '2',
                'registro_id' => '3',
                'comite_id' => '3',
                'periodo_id' => '1',
                'fecha_elec' => '2015-12-24',
                'created' => '2015-12-22 05:42:21',
                'voto' => '200'
            ),
            (int) 1 => array(
                'id' => '3',
                'registro_id' => '2',
                'comite_id' => '1',
                'periodo_id' => '1',
                'fecha_elec' => '2016-01-20',
                'created' => '2016-01-03 05:46:46',
                'voto' => '0'
            ),
            (int) 2 => array(
                'id' => '4',
                'registro_id' => '2',
                'comite_id' => '5',
                'periodo_id' => '1',
                'fecha_elec' => '2016-01-23',
                'created' => '2016-01-03 20:40:18',
                'voto' => '0'
            ),
            (int) 3 => array(
                'id' => '5',
                'registro_id' => '3',
                'comite_id' => '9',
                'periodo_id' => '1',
                'fecha_elec' => '2016-01-21',
                'created' => '2016-01-03 20:41:03',
                'voto' => '0'
            ),
            (int) 4 => array(
                'id' => '6',
                'registro_id' => '3',
                'comite_id' => '11',
                'periodo_id' => '1',
                'fecha_elec' => '2016-01-14',
                'created' => '2016-01-03 21:06:27',
                'voto' => '0'
            ),
            (int) 5 => array(
                'id' => '7',
                'registro_id' => '2',
                'comite_id' => '1',
                'periodo_id' => '1',
                'fecha_elec' => '2016-01-22',
                'created' => '2016-01-04 02:38:17',
                'voto' => '0'
            )
        )
    ),
    'Escrutinio' => array(),
    'Revocatorio' => array()
),

关系是:

Revocatorio hasMany Parlamentario
Parlamentario hasMany Postulacion
Postulacion hasMany Registro

我需要保存Parlamentarioid,但在添加视图中显示Postulacion.Registro.name。我怎样才能做到这一点?

【问题讨论】:

  • 我理解你的意思吗?你想用 Parlamentario.id => Parlamentario.Postulacion.Registraro.name 创建一个selectbox
  • 但可能有多个 Postulacion 和 Multiple Registro - 例如,一个 Parlamentario.id 有 3 个名称。在您看来,生成的选择框应该是什么样子?你能在你的问题中添加一个你想实现的示例结果吗?
  • 一个例子可以是这个......在我的 find() 中做这样的事情 $parlamentarios = $this->Revocatorio->Parlamentario->find('list', array('recursive' = > 2, array('fields' => array('Palarmetario.id', 'Postulacion.Registro.id')); 但字段 'Postulacion.Registro.id' 在 sql 上显示错误
  • 我的意思是结果应该是什么样子。
  • 类似array( (int) 'Parlamentario.id => 'Postulacion.Registro.name', (int) 'Parlamentario.id => 'Postulacion.Registro.name', (int) 'Parlamentario.id => 'Postulacion.Registro.name', (int) 'Parlamentario.id => 'Postulacion.Registro.name', (int) 'Parlamentario.id => 'Postulacion.Registro.name', (int) 'Parlamentario.id => 'Postulacion.Registro.name', )

标签: cakephp cakephp-2.3 cakephp-2.x


【解决方案1】:

试试这个:

$this->Parlamentario->find("list", array(
        "fields"  => array("Parlamentario.id", "Postulacion.Registro.name"),
        "contain" => array("Postulacion.Registro")
       )
     );

和平! xD

【讨论】:

  • 感谢您的回答,您好,我看到了这种行为,但是这发现它最终会显示一个带有这些数据的选择。因此,查找与“列表”有关。我如何将“Parlamentario.Registro”上的“名称”字段与字段属性一起使用?
猜你喜欢
  • 2011-08-06
  • 2010-12-23
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
  • 1970-01-01
相关资源
最近更新 更多