рекурсивный 2 с функционалом Cakephp

Мне нужно создать раскрывающийся список выбора из данных из 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

Мне нужно сохранить id из Parlamentario, но показать Postulacion.Registro.name в добавленном представлении. Как я могу это сделать?


person Rodrigo Gómez    schedule 11.01.2016    source источник
comment
Я правильно тебя понимаю? Вы хотите создать блок выбора с Parlamentario.id =› Parlamentario.Postulacion.Registraro.name?   -  person DIDoS    schedule 11.01.2016
comment
Но может быть несколько Postulacion и Multiple Registro — например, будет один Parlamentario.id с 3 именами. Как, по вашему мнению, должно выглядеть результирующее окно выбора? Можете ли вы добавить пример результата, которого вы хотите достичь в своем вопросе?   -  person DIDoS    schedule 11.01.2016
comment
одним из примеров может быть это... в моем find() сделайте что-то вроде этого =› array('Palarmetario.id', 'Postulacion.Registro.id')); но поле 'Postulacion.Registro.id' показывает мне ошибку в sql   -  person Rodrigo Gómez    schedule 11.01.2016
comment
Я имел в виду, как должен выглядеть результат.   -  person DIDoS    schedule 12.01.2016
comment
что-то вроде этого 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', )   -  person Rodrigo Gómez    schedule 13.01.2016


Ответы (1)


Попробуй это:

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

Мир! хД

person Object Manipulator    schedule 12.01.2016
comment
спасибо за ответ и привет, я вижу поведение, но это связано с тем, что, наконец, нужно показать один выбор с этими данными. Итак, находка со «списком». как я могу использовать имя поля в Parlamentario.Registro с атрибутом поля? - person Rodrigo Gómez; 12.01.2016