簡體   English   中英

Cakephp不同的型號和控制器與同一個表

[英]Cakephp different model and controller with same table

可能是一個愚蠢的問題。

由於我的控制器和模型太大(我也不想搞砸舊模塊),我想創建一個新的控制器和模型,我想將代碼與現有代碼分開。也就是說,我想移動從用戶控制器和用戶模型到計費控制器和計費模型的一些代碼(沒有賬單表,所有信息都存儲在用戶表中,所以我給出了useTable ='users')。 我不想執行用戶模型中編寫的任何代碼,在執行billings控制器時,只需要執行BillingModel代碼。

BusinessController

class BillingsController extends AppController 
{

    function add()
    {
        if (!empty($this->request->data)) 
        {
            $this->Billing->create();
            if ($this->Billing->save($this->request->data)) 
            {
                echo 'Saved'; // Message, redirect etc
            }
        }
    }
}

BillingModel

class Billing extends AppModel {


    public $useTable = 'users';

        public $hasOne = array('Profile');

public $validate = array(
        'email' => array(
            'email' => array(
                'rule' => 'email',
                'message' => 'Please provide a valid email address.',
                'last' => true,
            ),
                 'first_name' => array(
            'notempty' => array(
                'rule' => array('notempty'),
                'message' => 'Please enter your name',
            ),
                    )
        );

}

所有表單字段都將數據[Business]作為前綴。

數據正確保存到數據庫中。 我只是想知道,這種方法有什么問題嗎?

在這種情況下,據我所知,你正在復制兩個模型中的一些代碼(驗證,關系等)。在我看來,更好的解決方案是使用Billing擴展用戶模型

class Billing extends Users {

}

與控制器相同的情況:

class BillingsController extends UsersController 
{

}

暫無
暫無

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

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