2015-02-09 3 views
0

Я знаю, что это очень глупый вопрос, но здесь я не получаю никаких ошибок.cakephp метод поиска не работает

пыльник запрос работает нормально

$data=$this->Test->query('SELECT * FROM tests where report_id=85'); 

Но тот же запрос в методе находят не работают

$condition=array('Test.report_id'=>85); 
$data=$this->Test->find('all',array('condition'=>$condition)); 

ответ

5

найти заявление в CakePHP должно быть

$condition=array('Test.report_id'=>85); 
$data = $this->Test->find('all',array('conditions'=>$condition)); 
+0

OPS !! Я пропустил «с». Большое спасибо. –

2
Cakephp find statement error in 'codintion' 
You should try this 
$data=$this->Test->find('all', 
    array('conditions'=> 
    array('Test.report_id'=>85) 
) 
); 

замените состояние условий

+0

Это делает вещи «Сложными», если вы используете все массивы в одном месте. Вы должны указать значения массива в переменных, а затем назначить его в методе 'find'. Синтаксис '$ data = $ this-> Test-> find ('all', array ('conditions' => array ('Test.report_id' => 85) )' может усложнить ситуацию, если есть 6,7 или более, чтобы перейти к методу 'find', поэтому используйте переменные и используйте их в синтаксисе. –

2

Вы сделали Typo.And позволяет понять, почему «s» используется.

Там может быть 100 условий в массиве, а не только один, поэтому его conditions

$conditions=array('Test.report_id'=>85); 
$data = $this->Test->find('all',array('conditions'=>$conditions)); 

И еще одна вещь -> Всегда использовать $conditions в качестве переменной именовании, потому что вы никогда не знаете, что есть 1,2, или 1000 условий.

Смежные вопросы