2013-03-07 42 views
5

içinde bir sorguda LIKE koşulunu kullanma Ben devam etmeden önce bir kayıt DB zaten var olup olmadığını öğrenmek ve bir kayıt kaydedin. Ben googled ve işe yarayacak gibi görünüyor ama ne yazık ki yapmaz buldu. Ben cakephp için yeniyim ve doğru sorguyu bulabilirim. Ben görünümde() sonuçları print_r isecakephp

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

Ben sadece gider ve hatta uzaktan 'sarışınla' gibi bir isim şey var, bunların hiçbiri bu tablodaki tüm sonuçlar getirdiğini görebilirsiniz!

cevap

11

senin find yaparken sadece conditions yanlış yazılmış düşünüyorum:

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

bekIiyorduk sonuçlar verecektir gerektiğini.

Yinelenmeye izin vermemek amacınız için, Tape modelinde bir doğrulama kuralı oluşturmanızı öneririz. Yinelenmeleri önlemek için tasarlanan belirli bir yerleşik kural vardır, bu nedenle muhtemelen onu kullanmanız daha iyi olur. Veri doğrulama hakkında daha fazla bilgi kontrol edin here - isUnique temel doğrulama kuralına göz atın.

+0

Ah canım. Fitili hisset. Bu beni gerçekten sinirlendiriyordu, daha dikkatli olmayı öğrenmem gerekecek. Doğrulama kuralı hakkında öneriniz için teşekkür ederiz. İyi bir fikir! –

+0

Endişelenmeyin, hepimiz yeni başladık :) Cevapları kabul edildi olarak işaretleyebilir misiniz? Teşekkür ederim! –