Как использовать сложный запрос в CakePHP? - PullRequest
2 голосов
/ 04 октября 2011

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

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 Ответ

2 голосов
/ 04 октября 2011

Вы звоните внутри модели, поэтому

    $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;
   }
...