簡體   English   中英

如何在cakePHP中保存此數據?

[英]How to save this data in cakePHP?

我有一個User模型和一個Boarder模型, 不是每個用戶都是寄宿生,而是每個寄宿生都是用戶。

用戶模型

class User extends AppModel
{
    public $primaryKey = "user_id";
    public $hasMany = 'Boarder';
}

寄宿生模型

class Boarder extends AppModel
{
    public $belongsTo = 'User';
}

我的寄宿生視圖的add.ctp

<?php 
echo $this->Form->create('Boarder', array('role' => 'form', 'novalidate' => true)); 
echo $this->Form->input('user_name');
echo $this->Form->input('bdr_home_address');
echo $this->Form->end();
?>

因此,在提交過程中,控制器中的add函數現在將收到一個類似這樣的數組

Array
(
    [Boarder] => Array
        (
            [user_name] => 'John',
            [bdr_home_address] => 'Some Street, Some City'
        )
)

[user_name]將保存在Users模型中,而[bdr_home_address]將保存在[bdr_home_address]模型中。 如我的$this->Form->create ,請求將被定向到BoardersController,動作添加。 那么我將如何保存呢?

BoardersController

class BoardersController extends AppController
{
    public function add()
    {

    }
}

如果每個Boarder都是一個User ,那么Boarder表應該包含一個user_id字段。

add.ctp表單如下所示

<?php
echo $this->Form->create('Boarder', array('role' => 'form', 'novalidate' => true));
echo $this->Form->input('User.username');
echo $this->Form->input('Boarder.home_address');
echo $this->Form->submit();
echo $this->Form->end();
?>

控制器的add功能為:

public function add()
{
    if ($this->request->is('post')) {
        debug($this->request->data);
        if ($this->Boarder->saveAssociated($this->request->data)) {
            // saved
        } else {
            // not saved
        }
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM