Как найти («список») связанных с HABTM записей для раскрывающегося списка в CakePHP? - PullRequest
1 голос
/ 04 июня 2009

Я хочу создать список (выпадающий список) с отношением habtm. Например, у меня есть таблица с именами «users», другая, называемая «Vehicles» и «users_vehicles».

Я хочу получить транспортные средства, назначенные пользователю "x", и поместить их в раскрывающийся список. Как мне этого добиться?


class User extends AppModel {

   var $hasAndBelongsToMany = array('Vehicle');
}

Ответы [ 2 ]

3 голосов
/ 04 июня 2009

Это один из способов, возможно, есть несколько других.

$result = $this->User->Vehicle->find('all', array(
    'recursive' => -1,
    'conditions' => array('Ownership.user_id' => 66),
    'fields' => array('Vehicle.*','Ownership.*'),
    'joins' => array(
        array(
            'table' => 'users_vehicles',
            'alias' => 'Ownership',
            'type' => 'LEFT',
            'foreignKey' => false,
            'conditions'=> 'Vehicle.id = Ownership.vehicle_id'
        )
    )
));
$list = Set::combine($result,'{n}.Vehicle.id','{n}.Vehicle.name');
1 голос
/ 07 февраля 2011
<code>
$options['conditions']['Ownership.vehicle_id'] = $x;
$options['joins'] = array(
                           array(
                                  'table' => 'ownership',
                                             'alias' => 'Ownership',
                                             'type'  => 'Left',
                                             'conditions' => 'Vehicle.id = Ownership.vehicle_id'
                                            )
                                    );
$this->set('vehicles', $this->Vehicle->find('list', $options));
</code>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...