Cakeのモデルの基本検索では、postConditionsメソッドを使用しています。セキュリティコンポーネントを介してCSRF保護を有効にするまではうまくいきました。この成分を有効CakePHPsでのpostConditionsの使用セキュリティコンポーネント
はSQL Error: 1054: Unknown column '_Token.key' in 'where clause [...]
を生成し、$this->data
から変更されているので、私はこれが起こっていることがわかります。言い換えれば.....
Array
(
[_Token] => Array
(
[key] => 03aef38c3c2f631d6dc50baa98c7327a3fe6d0cd
[fields] => 71d0fa03bc4e10f6f4d0de8f91674100836ea498%3A
)
[CrmPerson] => Array
(
[firstname] => john
[surname] =>
[email] =>
)
)
に
Array (
[CrmPerson] => Array
(
[firstname] => john
[surname] =>
[email] =>
)
)
.... 、[_Token]
の存在は、$this->postConditions
コールを怒らせます。コントローラで
私の全体のfind()関数は次のようになります。
function find() {
if(!empty($this->data)) {
$this->CrmPerson->recursive = 0;
$conditions = $this->postConditions(
$this->data,
array(
'firstname' => 'LIKE',
'surname' => 'LIKE',
'email' => 'LIKE'
)
);
$this->paginate = array(
'order' => 'CrmPerson.created DESC',
'limit' => '40',
);
$this->set('crmPeople', $this->paginate($conditions));
}
}
私は$this->data['CrmPerson']
に$this->data
を変更しようとしたが、事後条件のメソッドは、配列内の1つ上のレベルの高い開始するデータを必要とします。
私はpostConditionsに与えるために完全な新しい配列を作成する必要がありますか、私は見ていないより単純なオプションがありますか?
これは私の問い合わせに答えます。しかし、私はこのメソッドを直接この問題を解決する別の答えを掲載しました。 – Joseph
あなたは答えが正しいものとしてマークする必要があります。 –
さて、十分に公正! – Joseph