1

ばかげた質問かもしれません。

コントローラーとモデルが大きすぎるため(古いモジュールを台無しにしたくない)、新しいコントローラーとモデルを作成し、既存のコードからコードを分離したい。つまり、移動したいユーザーコントローラーとユーザーモデルから課金コントローラーと課金モデルへのコード(課金テーブルはなく、すべての情報はユーザーテーブルであるため、useTable ='users'を指定しました)。ユーザーモデルで記述されたコードを実行したくないのですが、Billings Controllerを実行している間は、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',
            ),
                    )
        );

}

すべてのフォームフィールドには、プレフィックスとしてdata[Business]があります。

データはデータベースに正しく保存されています。私はただ知りたいのですが、このアプローチに何か問題がありますか?

4

1 に答える 1

3

この場合、両方のモデル(検証、関係など)で一部のコードを複製していることを理解しているので、私の意見では、Billingを使用してユーザーモデルを拡張することをお勧めします。

class Billing extends Users {

}

同じ状況がコントローラーの場合です。

class BillingsController extends UsersController 
{

}
于 2012-09-25T10:09:09.430 に答える