我已经浏览了关于将模型链接在一起(创建关联)的 Cakephp 文档,并且我可以通过在一个模型中定义一个 $hasOne 成员和在另一个模型中定义一个相应的 $belongsTo 来在脚手架的添加和编辑视图中获得单个选择下拉列表。现在,对于 $hasMany 关系,我试图在我的脚手架添加和编辑视图中获取某种表单输入(多选下拉菜单或复选框......最好是复选框),让用户选择相关的广告对于给定的租金。但是使用下面的代码,我没有提到租赁添加和编辑视图中的广告 :'( 我错过了什么吗?这甚至可能吗?我已经在 RoR 和 Grails 中看到了这一点,但无法让它与 CakePHP 一起使用。 谢谢你的帮助!
租赁模型(app/Model/Rental.php)
<?php
class Rental extends AppModel {
var $name = 'Rental';
var $belongsTo = array(
'Agent' => array(
'className' => 'User',
'foreignKey' => 'agent_id'
),
'Bedroom',
'Landlord' => array(
'className' => 'Landlord',
'foreignKey' => 'landlord_id'
)
);
var $hasMany = array(
'Advertisement' => array(
'className' => 'Advertisement',
'foreignKey' => 'rental_id',
//'conditions' => array('Comment.status' => '1'),
'order' => 'Advertisement.created DESC',
'limit' => '5',
'dependent'=> false
)
);
public $validate = array(
'title' => array(
'rule' => 'notEmpty'
),
'description' => array(
'rule' => 'notEmpty'
)
);
public function isOwnedBy($rental, $user) {
return $this->field('id', array('id' => $rental, 'user_id' => $user)) === $rental;
}
}
租赁控制器 (app/Controller/RentalsController.php)
<?php
class RentalsController extends AppController {
public $scaffold;
}
广告模型(app/Model/Advertisement.php)
<?php
class Advertisement extends AppModel {
var $name = 'Advertisement';
var $belongsTo = array(
'Rental' => array(
'className' => 'Rental',
'foreignKey' => 'rental_id'
),
'Author' => array(
'className' => 'User',
'foreignKey' => 'author_id'
)
);
}
广告控制器 (app/Controller/AdvertiesementsController.php)
<?php
class AdvertisementsController extends AppController {
public $scaffold;
}