cakephp как ссылаться на модель с переменной в контроллере - PullRequest
0 голосов
/ 23 апреля 2011

Я хочу сослаться на $ this-> Model-> ... в контроллере. Но я хочу сделать функции универсальными, так как я могу использовать это делать динамически? Я попытался $ this -> $ modelname, но, конечно, это не сработало.

Функции CRUD будут общими для всех моделей и, следовательно, для всех контроллеров, с переопределением в нескольких случаях.

ПРИМЕР: Два контроллера, по одному для каждой модели - Письмо и Электронная почта. Есть контроллер писем и контроллер электронной почты. У каждого есть функции CRUD. Представления по существу идентичны, за исключением того, что модели отслеживают различную информацию для каждого (например, письмо с send_method). Единственное, что меняется между ними - это поля. Я автоматизировал эту часть, но контроллеры - это одно и то же, за исключением нескольких незначительных изменений. Я хочу, чтобы у родительского класса было имя модели конкретной модели, поэтому мне не нужно постоянно вносить изменения в каждый контроллер каждый раз, когда я делаю изменения. Но в некоторых случаях мне нужно обратиться к $ this-> Model-> ... и я не знаю, как это сделать.

Ответы [ 2 ]

2 голосов
/ 23 апреля 2011

Перепечатка завершена на основании разъяснения ОП

Вверху letters_controller.php добавьте:

$this->defaultModel = 'Letter';

А в emails_controller.php добавьте:

$this->defaultModel = 'Email';

В любом контроллере, чтобы обратиться к модели, позвоните

$this->{$this->defaultModel}->function();
0 голосов
/ 24 апреля 2011

Похоже, вы пытаетесь заново изобрести колесо: вы уже проверили раздел CakePHP Scaffolding ?

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