0

CakePHPのモデルでカスタム検証関数を作成しています。ClassRegistry::init('Model');同様の質問を読んだ後、現在のモデルに外部モデルをロードするために使用できることを理解しました。ただし、構文と、後で実際に使用する方法については詳しく説明していません。これは私が試したことですが、配列を印刷して正しいものが含まれているかどうかを確認しようとしても、「何も起きていません」。基本的に、検証で使用するためにユーザーデータを引き出したいと思います。

class Booking extends AppModel {

    public $name = 'Booking';

    public $validate = array(
        'start_time' => array(
            'noOptionViolation' => array(
                'rule' => 'noOptionViolation',
                'allowEmpty' => false
            )
        ),
    );  

    public function noOptionViolation ($start_time) {

        $this->User = ClassRegistry::init('User');
        $allUsers = $this->User->find('all');
        print_r($allUsers);


    }

これは正しい構文ですか?コントローラの場合と同じように、$ this-> Userのすべてのメソッドを使用できますか?

4

2 に答える 2

0

これを使用してモデルをロードすることもできます

$this->loadModel('User');

すべての機能にアクセスするには

$this->User
于 2012-11-21T12:24:46.030 に答える
0

この投稿で詳しく説明されているように、インポートを使用できます: https://stackoverflow.com/a/13140816/1081396

App::import('Model', 'SystemSettings.SystemSetting');
$settings = new SystemSetting();
$mySettings = $settings->getSettings();

あなたの例では、次のようになります。

App::import('Model', 'Users.User');
$user = new User();
$allUsers = $user->find('all');
print_r($allUsers);

モデルの最初にインポートを使用することをお勧めします。

于 2012-11-20T21:42:43.857 に答える