7

先に進んでレコードを保存する前に、DB に同様のレコードが既に存在するかどうかを確認しようとしています。私はグーグルで調べて、うまくいくように見えるものを見つけましたが、残念ながらうまくいきません。私はcakephpを初めて使用し、正しいクエリを理解できません。

$this->Tape->recursive = -1;
$tapeexists = $this->Tape->find('all', array('condition'=>array('Tape.name LIKE'=>'blondie%')));
$this->set('output', $tapeexists);

ビューの結果を print_r() すると、そのテーブルにすべての結果が表示され、「blondie」のような名前がまったくないことがわかります。

4

1 に答える 1

17

conditions検索を行うときにスペルを間違えただけだと思います:

$tapeexists = $this->Tape->find('all', array('conditions'=>array('Tape.name LIKE'=>'blondie%')));

これにより、期待される結果が得られるはずです。

重複を許可しないという特定の目標のために、Tapeモデルに検証ルールを作成することをお勧めします。重複を避けるように設計された特定の組み込みルールがあるため、おそらくそれを使用する方がよいでしょう。データ検証の詳細については、こちらをご覧くださいisUnique。コア検証ルールをご覧ください。

于 2013-03-07T21:52:47.137 に答える