#php #cakephp-1.3
#php #cakephp-1.3
Вопрос:
Я пытаюсь выполнить запрос внутри своей модели и вызвать его в своем контроллере, но по какой-то причине я получаю некоторые ошибки. Вот моя модель:
class Room extends AppModel {
var $name = 'Room';
var $displayField = 'title';
var $actsAs = array('Containable');
function select($qwe){
$results = $this->Room->query("SELECT * FROM test WHERE qwe= ".$qwe." ");
}
В этом случае я получаю Undefined property: Room::$room
. В контроллере у меня есть:
...
function success(){
$qwe = "testing"
$this->set('get', $this->Room->select($qwe));
}
}
Есть идеи о том, что я делаю не так?
Ответ №1:
Вы вызываете внутри модели, поэтому
$results = $this->Room->query("SELECT * FROM test WHERE qwe= ".$qwe." ");
должно быть
$results = $this->query("SELECT * FROM test WHERE qwe= ".$qwe." ");
поскольку query()
это метод класса Model, который является родительским классом любой другой модели, Model Room не имеет свойства Room, поэтому и возникает ошибка. Если вы вызываете эту функцию через контроллер, тогда вы используете $this->ModelName->method()
Ваша функция select
ничего не возвращает, вы должны изменить ее на
function select($qwe){
$results = $this->query("SELECT * FROM test WHERE qwe= ".$qwe." ");
return $results;
}
Комментарии:
1. отлично, спасибо, еще одна вещь, если можно … в представлении, которое я использую
<?php foreach ($get as $data):?>....
, и я получаюInvalid argument supplied for foreach()
. в чем, по вашему мнению, может быть проблема?