Можете ли вы получить доступ к данным модели в контроллере в CakePHP? - PullRequest
1 голос
/ 19 сентября 2010

Это, вероятно, глупый вопрос, но я нигде не могу найти однозначного ответа. Можно ли получить доступ к данным модели в контроллере, и если да, то как?

Я попробовал следующее:

$this->set('mydata', $this->Model->find('all', 'conditions' => array('id' => 'someID')));

И доступ к нему через контроллер:

$mydata['Model']['field']

Но, похоже, это только для представлений.

Есть ли способ доступа к данным модели в контроллере? Причина в том, что мне нужно выполнить вычисления для связанной модели (assignTo), которую нельзя выполнить с помощью скрытых полей или чего-либо еще, поскольку идентификатор связанной модели не передается до тех пор, пока форма не будет отправлена.

Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 19 сентября 2010

Хм, а как же:

$myData = $this->Model->find('all', 'conditions' => /* ... */);

$myData['Model']['field'];
$myData['RelatedModel']['field'];

$this->set('mydata', $myData);

Достаточно просто:)

Model :: find () возвращает ваши данные, вам не нужно передавать их напрямую в Controller :: set (), вы можете сначала связываться с ними, а затем передавать их вашим представлениям.

Но я бы посоветовал против этого, лучше, если у вас есть Model :: messWithData ($ data), и пусть модели работают с данными, а контроллеры заботятся о логике приложения. Помните, толстые модели, тощие контроллеры !

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...