好吧,我有兩個表格,用戶和單位。 '單位'屬於'用戶','用戶'有許多'單位'。我想訪問我的單位表中的所有數據,並將我的用戶表中的部分數據添加到視圖中。這裏是我的控制器代碼:另一個「需要從cakephp中的兩個表中提取數據」
public function condos() {
$u=$this->User->Unit->find('all', array('conditions'=>array('type'=>'condo', 'active'=>1)));
$this->set('allcondos', $u);
}
我有兩個型號,用戶和組,這裏是它們的代碼: 從unit.php:
class Unit extends AppModel {
var $name='Unit';
var $belongsTo=array(
'User'=>array(
'className'=>'User',
'foreignKey'=>'user_id'
));
}
和user.php的:
class User extends AppModel {
var $name='User';
var $hasMany=array(
'Unit'=>array(
'className'=>'Unit',
'foreignKey'=>'user_id'
));
}
這裏是我的視圖代碼:
<?php foreach ($allcondos as $condo) { ?>
<section class="listings">
<figure>
<img src="<?php echo $condo['Unit']['photo1']; ?>" />
</figure>
<h1><?php echo $condo['Unit']['complex'], ' ', $condo['Unit']['unitnum']; ?></h1>
<h2><?php echo $condo['Unit']['city']; ?>, <?php echo $condo['Unit']['state']; ?> | (<?php echo $condo['User']['area_code']; ?>)<?php echo $condo['User']['exchange'];?>-<?php echo $condo['User']['sln'];?></h2>
<p><?php echo $condo['Unit']['unit_desc']; ?></p>
</section>
<?php } ?>
我對$ condo ['User'] ['any_field']的調用有問題,因爲它返回零'User'數據。 (它返回'單元'數據就好了)。顯然,我不知道如何訪問兩個表。
如果我在視圖中進行調試$ allcondos,它看起來像這樣:
Array
(
[0] => Array
(
[Unit] => Array
(
[id] => 1
[user_id] => caribeincrentals
[additional fields] ...
)
[User] => Array
(
[id] =>
[user_id] =>
[additional fields] ...
)
)
[1] => Array ...
)
什麼是你的表格結構? – Farray
我有一個表的用戶,有一堆的信息,包括'user_id'字段。我有一個單位表,有一堆信息,包括'user_id'字段。我改變了我的代碼在我的控制器再次說這個:public function condos(){$ this-> User-> Unit-> Behaviors-> load('Containable'); $ u = $ this-> User-> Unit-> find('all',array('conditions'=> array('Unit.type'=>'condo','Unit.active'=> 1),'包含'=> array('User'))); $ this-> set('allcondos',$ u); }現在我得到單元數據,爲用戶表加上FIELDS,但在關聯數組中沒有數據字段 – huzzah
如果忽略'containsable'行爲,而是在'find()'中指定'recursive', ? – Farray