Cakephp:BelongsTo Relationship

Chr*_*ris 5 cakephp

我想建模以下简单的关系:

一名乘客属于一辆汽车; 一辆车有很多乘客.

乘客表有一个id和Car_id列,Car表有一个id列.

我的模型看起来像这样:

<?php
class Passenger extends AppModel {
   var $name = 'Passenger';
   var $belongsTo = 'Car';
} ?>
Run Code Online (Sandbox Code Playgroud)

<?php
class Car extends AppModel {
   var $name = 'Car';
   var $hasMany = array (
      'Passenger' => array (
            'className' => 'Passenger',
            'foreignKey' => 'car_id'
         )
   );
}
?>
Run Code Online (Sandbox Code Playgroud)

和我的添加Passenger .ctp看起来像这样:

<?php
echo $this->Form->create('Passenger');
    echo $this->Form->input('car_id');
    echo $this->Form->end('Save');
?>
Run Code Online (Sandbox Code Playgroud)

当我访问页面添加乘客时,我看到的只是一个空的下拉框.是否还有一个额外的步骤,我必须采取所有汽车填充保管箱?

Rab*_*ire 2

首先,您忘记提及belongsToPassenger 模型中的关系:

<?php
class Passenger extends AppModel {
   var $name = 'Passenger';
   var $belongsTo = array('Car');
}
?>
Run Code Online (Sandbox Code Playgroud)

接下来,在控制器的相应操作中,您需要list从数据库中获取所有汽车的 a,并将其设置为模型变量 ($cars) 的复数形式。你会这样做:

$cars = $this->Passenger->Car->find('list');
$this->set(compact('cars'));
Run Code Online (Sandbox Code Playgroud)

这会将car_id输入字段转换为包含填充信息的下拉列表。

HTH。