Меня смущает различие и трактовка функций index()
и view()
внутри CakePHP 2.4.
В частности, я пытаюсь изменить сторонний API, созданный в CakePHP 2.4
Рассмотрим этот контроллер:
class EventsController extends AppController {
<snip>
public function index() {
if ($this->request->params['named']) {
$conditions = $this->request->params['named'];
} else {
$conditions = array();
}
}
Это позволяет мне создать URL-адрес, такой как http://myserver/api/events/index/StartTime >=:12/EndTime <=15.json
, и StartTime и EndTime переходят в условия, когда я выполняю поиск.
Отлично.
Теперь у того же контроллера есть эта дополнительная функция:
public function view($id) {
}
Эта функция, кажется, вызывается, когда я вызываю URL вроде http://myserver/api/events/1234.json
Я пытаюсь расширить view
дополнительными параметрами, как индекс. Например, я хотел бы вызвать:
http://myserver/api/events/1234/MonitorId =:3.json
и MonitorId =:3
передаются в качестве параметра для обработки в представлении. Я не хочу добавить их в определения функций - это может быть что угодно.
Если я попытаюсь сделать это, я получу «Контроллер» не найден, но этот же подход работает в index ()
Может ли кто-нибудь помочь мне достичь своей цели и помочь объяснить, что происходит?
(ЕСЛИ это помогает, полный код контроллера здесь )