Как создать несколько моделей против нескольких функций в одном контроллере в CakeStack Overflow

я думаю, в «CakePHP» одна модель против каждого контроллера, но у меня есть несколько функций в одном контроллере, и каждая функция представляет разные страницы и таблицы базы данных.
т.е.

public function manage_categories(){}
public function manage_sub_categories(){}

выше 2 функции находятся в Admin Controller, но теперь вопрос заключается в том, как создать модель для каждой функции для представления базы данных. каждая функция имеет уникальные атрибуты в базе данных.
Еще одно: либо название модели должно совпадать с именем контроллера «admin», либо это имя будет совпадать с именем функции. в то время как в нормальных условиях название модели совпадает с именем контроллера.

Название модели «Users» используется против «UsersController», пожалуйста, помогите решить вышеуказанную проблему. Я достаточно постарался, чтобы решить это, бот не смог.
Заранее спасибо.

0

Решение

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

Иногда, когда вы просто хотите использовать часть данных из связанной модели, вы можете получить к ней доступ через ассоциации:

$this->Model->SubModel->foo();

Также вы говорите, что у вас есть контроллер администратора, который работает, но не очень хорошо подходит. Вместо функций CakePHP префиксная маршрутизация. Таким образом, действие, к которому осуществляется доступ, например / admin / Categories / some_action, будет направлено на действие Categories_ontroller some_action ().

Название модели «Users» используется против «UsersController»

Это неправильно, по соглашению модели должны быть названы в единственном, а не во множественном числе Ваш UsersController не найдет модель Users, потому что он ищет модель User.

И держитесь подальше от Model :: query (), используйте ORM столько, сколько сможете.

public function manage_categories(){}
public function manage_sub_categories(){}

Должно стать:

class CategoriesController extends AppController {
public function admin_index() { /*...*/ }
}
class SubCategoriesController extends AppController {
public function admin_index() { /*...*/ }
}

Но предполагая, что подкатегории принадлежат категории, которая является той же самой таблицей, я не вижу потребности во второй модели или втором контроллере вообще.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector