[英]CakePHP working with two controllers / models
首先,我很抱歉這個問題的名稱我很難弄清楚該怎么稱呼它:
這是我的問題,我有以下兩個數據表:
Users
Employees.
這兩個數據表以1對1的關系連接
現在這兩個都有一個模型視圖和一個控制器。 現在我的問題有點分為兩部分,首先是困難部分:
每當員工想要創建新用戶(新員工)時,他必須先在users
表中將數據插入兩個表中,然后在獲取user_id
后在employee
表中添加記錄
employee表看起來像這樣:
users_idUsers client_id
其中users_idUsers
是user表中的userid
我將如何解決這個問題? 是否可以將其他模型的功能添加到我的員工模型中?
第二個問題是對此的擴展並且相對簡單..我想顯示所有員工,但是視圖應該與用戶連接,以便您可以在視圖中看到該人的用戶名。
應該說我對Cake很新,所以我希望你們中的一些人能夠幫助我。
您所追求的是將兩個模型連接在一起。 CakePHP有一個可靠的關系映射器,可以為您完成所有這些操作,而無需“從最后一個插入中獲取id並使用它執行其他操作”。
如果我沒弄錯的話,你的問題簡單來說就是:
An Employee hasMany users
A User belongs to one Employee
對於1對多的模型關系,CakePHP有一個名為“hasMany”的東西: http : //book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasmany
例如,用戶可以做出很多評論; 員工可以創建許多用戶。
在用戶和員工之間的關系的另一面,你需要一個“belongsTo”映射,所以你知道用戶是由一些員工添加的: http : //book.cakephp.org/2.0/en/models /associations-linking-models-together.html#belongsto
這樣,您可以通過搜索“通過用戶”找到添加“用戶X”的員工,可以這么說。
將模型映射到一起后,檢索數據(如findBy: http ://book.cakephp.org/2.0/en/models/retrieving-your-data.html#findby)和管理模型關系等操作變得更加容易因為你不必太多考慮如何將關系鏈接在一起(這就是上面概述的模型映射),而是關於你想要檢索的內容。
反過來,它允許您直觀地執行此類操作
$this->Employee->find('all', array(
'recursive' => 1,
'fields' => array('employee.name, employee.age')
));
或者如果你想找到添加用戶“Sarah”的員工。
$this->Employee->User->find('all', array(
'conditions' => array('User.name' => 'Sarah'),
'fields' => 'Employee.*',
'recursive' => 0))
這會給員工帶來一個關聯數組。
作為旁注:recursive = 1的使用是老式的。 有一些更好的稱為“可包含” ,允許您根據需要注入模型。 這不在這個問題的范圍之內,但我會提到它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.