を拘束されなかった私は、このようなコードがあります: Yii2 SQLSTATE [HY093]:無効なパラメータ番号:パラメータが全く私のModelSearchで
$candidates = Candidate::find();
$dataProvider = new ActiveDataProvider([
'query' => $candidates
]);
をしてから、私はこのクエリを続行しようとしています:
$candidates->andFilterWhere([
' or ',
['like', 'candidate.something', $this->word],
['like', 'candidate.anything', $this->word]
]);
と最後に私は$dataProvider
を返します。
:私が書くとき
SQLSTATE[HY093]: Invalid parameter number: no parameters were bound
The SQL being executed was: SELECT COUNT(*) FROM (SELECT * FROM `candidate` WHERE Array OR 'like' GROUP BY `candidate`.`id`) `c`
をその方法で、コードの一部:
$candidates->andFilterWhere([
' or ',
'candidate.`something` LIKE "%' . $this->word . '%" ',
'candidate.`anything` LIKE "%' . $this->word . '%"',
]);
動作しているようですが、私はそのようにそれを行うにはしたくありません。私は問題の手がかりが他の場所にあるかもしれないと思うが、どこでそれを探すべきか分からない。
訴訟はありますか?
よろしくお願いいたします。解決しよう
[EDIT]:
@arogachevのプロンプトが正しい方法であることが判明:それは働かせたはちょうど "or
" からスペースを削除します。 QueryInterfaceは、トリムされていない条件演算子を認識しません。なぜなら、それがだまされた理由です。
プロセスを完全に構築するクエリを表示してください。また、スペースを 'または'で区切ってみてください。例[here](http://www.yiiframework.com/doc-2.0/yii-db-queryinterface.html#where%28%29-detail)を参照してください。 – arogachev
@arogachev、そうです。問題は 'or'演算子を囲むスペースで問題になっていました。ありがとう! – peterekkk