Cakephp-запросы моделей в соответствии с контекстом - PullRequest
1 голос
/ 26 октября 2011

Мне нужно сделать что-то подобное.

$model="MyModel";
$results=$this->"MyModel"->find("all);

поэтому мне нужно вызывать другую функцию в зависимости от ситуации. Как мне это сделать?

Ответы [ 3 ]

1 голос
/ 26 октября 2011

Вы можете сделать это из действия контроллера

class MyControllerController extends AppController
{
    function action_name()
    {
        $this->uses = array(
            'MyModel',
            'AnotherModel'
        );

        $this->AnotherModel->find('all');
    }
}
1 голос
/ 26 октября 2011

$ model = "Model"; $ results = $ this -> {$ model} -> find ('all');

Использование этого подхода приемлемо в соответствии с соглашениями о кодировании CakePHP и не имеет лучшей или более чистой альтернативы. Особенно, когда вы кодируете поведение со сложной логикой. Так что придерживайтесь этого и не волнуйтесь.

1 голос
/ 26 октября 2011

Ну, что вы пытаетесь сделать - это назвать другую модель в соответствии с условиями, верно?

$model = "Model";
$results = $this->{$model}->find('all');

Однако, если вам это нужно, это может быть связано с организацией вашего кода.неправильно.Возможно, вы захотите посмотреть на альтернативы.

...