2010-10-27 1 views

ответ

3

Вы могли бы, путем пропускания ссылки на модели в поле зрения в качестве переменной с помощью $ this-> множество(), а затем запрашивая его ... но вы не должны. Это беспорядочно ;-)

CakePHP использует модель MVC, а помощники являются частью View (V of MVC) - их задача состоит в том, чтобы отображать (уже имеющуюся) информацию, переданную ему с контроллера.

Если вашему представлению требуется дополнительная информация, ваш контроллер должен уже запросить модели для его получения.

Я бы посоветовал вам ознакомиться с моделью MVC, если вы не знакомы с ней, тогда некоторые рефакторинги могут быть в порядке!

+0

Я не уверен, почему это помечено как правильное - оно вообще не отвечает на вопрос - я также хотел бы знать, как помещать общие запросы базы данных в вспомогательные файлы в CakePHP. – Rob

0

Да. Вы можете запросить базу данных из своего вспомогательного файла. Пожалуйста, проверьте следующее: -

class YourHelperNameHelper extends AppHelper { 

    function queryDbFromHelper() 
    { 
     // Load your model here 
     App::import('Model','ModelName'); 
     $this->ModelName = new ModelName(); 

     //now you can use find method or another method to query DB. 
     return $this->ModelName->find('all'); 
    } 
} 
// Include this helper in controller 
var $helpers = array('YourHelperName'); 

// call this function in helper file. 
$this->YourHelperName->queryDbFromHelper();