Помогите с контроллерами торта - PullRequest
0 голосов
/ 13 мая 2010

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

Ответы [ 3 ]

1 голос
/ 14 мая 2010

Существует универсальный AppController, но на практике это скорее абстрактный класс (вы обычно выводите из него другие контроллеры).

Это совсем не странно, что он ожидает контроллера - в конце концов, вы не сможете вызывать методы в моделях (как я предполагаю, вы делаете удаление), если у вас нет точки контроля, чтобы позвонить им. В этом случае точкой контроля является контроллер.

Так что вы можете просто создать контроллер. Вот шаблон для начала:

class SomeController extends AppController {
 function delete() {
  $this->Some->delete();
 }
}

Затем получите доступ к / somes / delete (помните, что URL, как правило, /controller/action).

Теперь он может говорить о приложении CLI Cake Bake. Это займет ваши таблицы БД и проведет вас через начальную базовую настройку вашего приложения. Обычно он создает базовый каркас для действий CRUD.

В любом случае вам нужно создать контроллер (вручную или через Bake).

0 голосов
/ 14 мая 2010

Если у вас нет контроллера в CakePHP при посещении страницы (http://www.youraddress.com/Newfeature), вы получаете сообщение об ошибке отсутствующего контроллера:

Ошибка: не найден NewfeatureController.

Ошибка: создайте класс NewfeatureController ниже в файле: app \ controllers \ newfeature_controller.php

Вы не можете получать или удалять данные из базы данных без контроллеров - Общие сведения о Model-View-Controller . Вам не нужен контроллер только для статических страниц в CakePHP.

0 голосов
/ 13 мая 2010

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

...