1
我是一個用cakephp編程的新手,所以我實現了一個簡單的用戶遊戲應用程序。用戶和遊戲之間存在「hasMany」關係。一個遊戲完全由一個用戶創建。因此,遊戲模型中有一個名爲「user_id」的字段。我已經在使用auth組件,用戶可以登錄系統。現在,我希望該用戶可以將模型添加到遊戲中,但是應該自動添加user_id(通過訪問會話數據)。我怎麼能做到這一點?自動添加外鍵(登錄用戶的用戶ID)
史坦尼斯:)
我是一個用cakephp編程的新手,所以我實現了一個簡單的用戶遊戲應用程序。用戶和遊戲之間存在「hasMany」關係。一個遊戲完全由一個用戶創建。因此,遊戲模型中有一個名爲「user_id」的字段。我已經在使用auth組件,用戶可以登錄系統。現在,我希望該用戶可以將模型添加到遊戲中,但是應該自動添加user_id(通過訪問會話數據)。我怎麼能做到這一點?自動添加外鍵(登錄用戶的用戶ID)
史坦尼斯:)
現在,我想,用戶可以添加遊戲模式,但USER_ID應自動添加(由acessing會話數據)。我怎麼能做到這一點?
首先,我強烈建議你去做官方的博客教程,因爲它會涵蓋這樣的問題給你。
在控制器:
public function add() {
if ($this->request->is('post') {
$this->request->data['Game']['user_id'] = $this->Auth->user('id');
$this->Game->save($this->request->data);
}
}
但可以肯定應該做的邏輯移動到模型更好,記住:脂肪模型,瘦控制器。下面是一個細分和簡單的例子:
// Controller
public function add() {
if ($this->request->is('post') {
$this->Game->add($this->Auth->user('id'), $this->request->data);
}
}
// Model
public function add($userId, $postData) {
$postData[$this->alias]['user_id'] = $userId;
return $this->save($this->request->data);
}
}
通常你不想訪問會話直接在模型,因爲它需要你使用靜態或單調用AUTH組件或會話對象,我們希望儘可能避免這種情況。
歡迎來到堆棧溢出。請考慮添加您當前的代碼以及您迄今爲止所嘗試的內容,因爲此問答的目的不在於我們爲您編寫整個代碼。 –