Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在CakePHP中找到与HABTM相关的记录的下拉列表?_Php_Cakephp - Fatal编程技术网

如何在CakePHP中找到与HABTM相关的记录的下拉列表?

如何在CakePHP中找到与HABTM相关的记录的下拉列表?,php,cakephp,Php,Cakephp,我想用habtm关系生成一个下拉列表。例如,我有一个名为users的表,另一个名为vehicles和users\u vehicles 我想要的是将车辆分配给x用户,并将其放在下拉列表中。我怎样才能做到这一点 class User extends AppModel { var $hasAndBelongsToMany = array('Vehicle'); } 这是一种方式,可能还有其他几种 $result = $this->User->Vehicle->find('al

我想用habtm关系生成一个下拉列表。例如,我有一个名为users的表,另一个名为vehicles和users\u vehicles

我想要的是将车辆分配给x用户,并将其放在下拉列表中。我怎样才能做到这一点

class User extends AppModel { var $hasAndBelongsToMany = array('Vehicle'); }
这是一种方式,可能还有其他几种

$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');

这是一种方式,可能还有其他几种

$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');