2014-01-02 4 views
0

, как я могу получить доступ к метод $this->someModel->find('all'), когда им в разной форме модели, например:CakePHP, метод модель доступа из другой модели

class DevicesController extends AppController { 
    public function add(){ 
     $departments = $this->Department->find('all', array(
      'fields'  => array('id', 'mac') 
    )); 
    $this->set(compact('departments')); 

    ..... 
    ..... 
} 

сейчас есть ошибка, потому что $this «не видит» Department

что мне нужно сделать, чтобы это произошло.

+2

http://stackoverflow.com/questions/980556/can -i-use-one-model-inside-the-different-model-in-cakephp/4753244 # 4753244 – Anubhav

+0

Являются ли модели устройств и департаментов связанными с отношениями в моделях? – mark

+0

нет, в 'Depratment' я храню только названия отделов – Viszman

ответ

0

Если модели не связаны, попробуйте так:

$this->loadModel('Department'); 
$departments = $this->Department->find('all', array(
      'fields'  => array('id', 'mac') 
    )); 
$this->set(compact('departments')); 
1

Если модели на самом деле связаны между собой (и правильно настроить так, в моделях), было бы

$this->Device->Department->... 

иначе использовать loadModel(), как документально.

0

и не может просто использовать loadModel(), потому что это метод контроллера. если ваши модели не связаны и может сделать это как то

$this->ModelName = ClassRegistry::init('ModelName'); 
$this->ModelName->find... 

, если они связаны между собой просто использовать

$this->ModelName->find... 
+0

Анубхав указал мне на это в своем первом ответе: D – Viszman

0

Попробуйте этот код для загрузки различных моделей на контроллере. public $ uses = array ('ModelName1', 'ModelName2') $ this-> ModelName1-> find() ........

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