我昨天從cakephp開始,跑在一個問題:從其他控制器的訪問控制器
我有一個「ImagesController」和「UsersController」。
ImageView顯示圖像列表。用戶使用用戶標識保存在圖像表中。
我現在需要將用戶標識轉換爲用戶表中的名稱。我用傭工試了一下,但沒有成功,因爲我無法訪問$this->User->find($id)
。
我已經在谷歌搜索,但似乎我命名它錯了,所以它沒有得到結果。
感謝您的幫助!
我昨天從cakephp開始,跑在一個問題:從其他控制器的訪問控制器
我有一個「ImagesController」和「UsersController」。
ImageView顯示圖像列表。用戶使用用戶標識保存在圖像表中。
我現在需要將用戶標識轉換爲用戶表中的名稱。我用傭工試了一下,但沒有成功,因爲我無法訪問$this->User->find($id)
。
我已經在谷歌搜索,但似乎我命名它錯了,所以它沒有得到結果。
感謝您的幫助!
您正在尋找的是將您的圖像模型與您的用戶模型相關聯。 article in the book真的值得一讀!
關聯後,您可以直接獲取該名稱而不調用任何函數。從我的頭頂,你會需要的是在你的圖像模型補充一點:
public $belongsTo = array('User');
然後從您的視圖中的用戶名應提供以下:
$data_var['Image']['User']['name'];
哪裏$data_var
是查看保存圖像數據的變量。
它看起來像你有兩個型號,Image
和User
。如果您想要撥打$this->User->find($id)
,可以將模型添加到cotroller頂部的$uses
變量中。
var $uses = array('Image','User');
例如。
嘿,耶,幾乎是我想要的!我怎樣才能從它調用函數?像'$ this-> User-> getUserNameById(1);' 還有更好的方法來做到這一點嗎? – Moritz
這就是你所說的。或者,您可以設置模型關聯,因此調用'$ this-> Image-> find()'也會拉入User數據。這裏是關於這方面的文檔。 http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html –
嘿,好像不是我想要的樣子: '<?php class Image擴展AppModel public $ name ='Image'; 公共$的hasMany =陣列( '用戶'=>數組( '的className'=> '用戶', '條件'=>數組( 'User.verified'=> '1') ) ); }' 只需返回舊的Image-> find()輸出。 – Moritz
$ belongsTo是重點!謝謝!但它不接受我的條件我提出: '公共功能指數(){$ 條件=陣列( '遞歸'=> -1, '訂單'=>數組( 'ID DESC'), 'limit'=> 15, 'page'=> 1, ); pr($ this-> Image-> find('all',$ conditions));' – Moritz
這是因爲您的條件數組有缺陷。 '遞歸'不會進入那裏。嘗試將它與第一個示例[此處](http://book.cakephp.org/2.0/en/models/retrieving-your-data.html)進行比較,看看它應該是什麼樣子。 – Oldskool
天啊,非常感謝你:-) – Moritz