2010-08-05 68 views
2

加載模型後,我得到數據的唯一方法似乎非常難看。你如何從模型中獲得價值?

$this->User->read(NULL, 49); 
print $this->User->data['User']['email']; 

大多數框架在訪問等的好得多方式

$User = new Model_User(49); 
print $User->email; 

反正有沒有做到這一點在CakePHP的1.2/3?

回答

1

如果你正在尋找一個更安全型的方式來做到這一點,可惜沒有。所有的模型訪問都基於數組結構,是令我對Cake感到沮喪的事情之一。

+0

無賴。我注意到它也強制所有相關結構一次加載,而不是使用延遲加載模型關係... – Xeoncross 2010-08-05 20:20:51

+0

@Xeoncross:這聽起來像這將是不可改變的行爲,這是簡單的和簡單的錯誤。開發者可以明確地控制所獲取的關聯數據。 fyi bindModel,unbindModel,可容納的行爲。 – benjamin 2010-08-06 08:13:54

1

正常的情況是,當你從分配這 - 結果>讀給一個變量即:

$user = $this->User->read(NULL, 49); 
print $user['User']['email']; 
+0

哦我的,\ * shiver * – Xeoncross 2010-08-05 20:22:39

+0

除了我的評論 - 返回的數據也可能包含用戶模型的最接近的關係。即$ user ['Profile']或$ user ['Activty']等 – 2010-08-06 11:14:32