我正在使用CakePHP 2.6.7。在CakePHP2中將模型鏈接在一起的麻煩
這裏是我的數據庫(簡化):
***Users***
id
username
***Cars***
id
CarMake
CarModel
NumberPlate
user_id
***Addresses***
id
address
postalcode
city
country
***Addresses_Users***
user_id
address_id
這就是我想要的東西:
- 一個用戶可以擁有多個汽車和一輛車僅由一個用戶擁有。
- 一個用戶可以擁有多個用戶擁有多個地址和一個地址。
- 一輛車可以有多個地址,一個地址可以由多輛車擁有。
所以現在我有一個模型user.php的:
<?php
class User extends AppModel {
public $hasMany = array(
'Car' => array(
'classname' => 'Car')
);
public $hasAndBelongsToMany = array(
'Address' => array(
'classname' => 'Address')
);
?>
和模型Car.php:
<?php
class Car extends AppModel {
public $belongsTo = array(
'User' => array(
'className' => 'User'
)
);
public $hasMany = array(
'Address' => array(
'classname' => 'Address')
);
}
?>
和模型Address.php:
<?php
class Address extends AppModel {
public $belongsTo = array(
'User' => array(
'className' => 'User'
),
'Car' => array(
'classname' => 'Car')
);
}
?>
我試圖連接汽車與地址,但我不能得到它的工作... 如果我做一個debug($this->User->find());
我有這樣的結果:
array(
'User' => array(
'id' => '1',
'username' => 'wblondel',
),
'Car' => array(
(int) 0 => array(
'id' => '2',
'CarMake' => 'Allard',
'CarModel' => '2005',
'NumberPlate' => '56QDS1',
'user_id' => '1',
),
(int) 1 => array(
'id' => '5',
'CarMake' => 'Alvis',
'CarModel' => '25',
'NumberPlate' => '5lDS1',
'user_id' => '1',
)
),
'Address' => array(
(int) 0 => array(
'id' => '2',
'address' => 'fghfghgf',
'postalcode' => '78200',
'city' => 'buchelay',
'country' => '40'
),
(int) 1 => array(
'id' => '3',
'address' => 'jkjkjk',
'postalcode' => '69100',
'city' => 'villeurbanne',
'country' => '59'
)
)
)
我會首先想的是,在每節車廂有一個數組的「地址」 ......
謝謝!
謝謝!通過使用你的關聯和在我的數據庫中創建缺失的表格,它可以工作!我無法用你提出的建議讓所有事情都回來,但沒關係,我可以通過「$ this-> user-> car-> find('all')獲得Cars的地址。 –