0

カスタム検証ルールがあります:

public function customRule($check)
{


}

このルールの中で、(データベース内の)いくつかのモデルデータにアクセスしたいと思います。もちろん、私はこのようにそれを行うことができます:

$this->id = 23; 
$this->read();

ただし、現在のモデルのすべてのデータはread関数によってオーバーライドされます(つまり、$this->data[$this->alias][...]オーバーライドされます。

このデータを取得するにはどうすればよいですか?

4

2 に答える 2

3

定期的に使用する

$result = $this->find('first', array('conditions' => array($this->alias . '.' . $this->primaryKey => $id));

検索条件のIDを使用します。そして結果を処理します、それはデータプロパティを上書きしていません。

于 2012-06-26T10:54:23.760 に答える
1

現在検証されているデータの完全なレコードを取得する場合は、現在検証されているフィールド$this->dataのデータのみを含む$ checkとは対照的に、検証ルール内で常にアクセスできることに注意してください。

DBに格納されているものに基づいて検証する必要がある場合$this->find()は、モデルにあるのと同じように、またはモデルの任意の関数を使用できます。

@burzumの回答+1をサポートします。

于 2012-06-27T09:50:06.547 に答える