2014-10-20 58 views
0

我已閱讀關於對流,我有我的應用程序/數據庫直。如何定義與cakePHP的關係?

我讀得約$ hasOne,$的hasMany,$屬於關聯等

不過,我面臨的一個問題/問題,我不能爲我自己解決。

我的車型:轎車,事件,加油,修理
我的控制器:CarsController

我的關係:

class Car extends AppModel { 
    public $BelongsTo = array('User'); 
    public $hasMany = array('Event'); 
} 

class Event extends AppModel { 
    public $BelongsTo = array('Car'); 
    public $hasOne = array('Refuel'); 
} 

。發現的

class Refuel extends AppModel { 
    public $BelongsTo = array('Event'); 
} 

輸出()從CarsController

array(
    'Car' => array(
     'id' => '1', 
     'user_id' => '1', 
     'make' => 'Make', 
     'model' => 'Model', 
    ), 
    'Event' => array(
     (int) 0 => array(
      'id' => '1', 
      'car_id' => '1', 
      'dateEvent' => '20-10-2014', 
      'description' => '1' 
     ), 
     (int) 1 => array(
      'id' => '2', 
      'car_id' => '1', 
      'dateEvent' => '20-10-2014', 
      'description' => '2' 
     ), 
     (int) 2 => array(
      'id' => '3', 
      'car_id' => '1', 
      'dateEvent' => '20-10-2014', 
      'description' => '3' 
     ) 
    ) 
) 

excecuted你需要知道這一點:
汽車屬於一個用戶。用戶可能有很多車
車有很多事件。一個事件只有一輛車。
到每個事件應該關聯一個加油或一個修復。加油或修理不能有多個相關的事件。

表:

用戶:ID
汽車:ID邀請,USER_ID
事件:ID,car_id
加油:ID,事項標識(唯一的)
修理:ID,事項標識(唯一)

  1. 我有沒有定義好關係?
  2. 如何在cakePHP中表達特殊事件 - 加油和事件修復?
+0

你能解釋的問題或疑問你有嗎?你提供了很多很好的數據,但是 - 不知道你在問什麼。 – Dave 2014-10-20 21:20:00

回答

-1

我發現數組('recursive'=> 2)解決了這個問題!

但是這是什麼?爲什麼?

+0

** http://book.cakephp.org/2.0/en/models/model-attributes.html#recursive**,** http://book.cakephp.org/2.0/en/core-libraries/behaviors /containable.html** – ndm 2014-10-20 18:30:57

+0

遞歸2是不好的。不要使用它。改用Containable。好消息是,如果將遞歸設置爲2可以獲得所需的數據,這意味着您的關聯可能是正確的。 – Dave 2014-10-20 19:54:28

0

你錯過了

class User extends AppModel { 
    public $hasMany = array('Car'); 
}