У меня есть виды, которые вызывается из разных точек зрения. Просмотр прав клиентов можно вызвать из списка клиентов, поиска клиентов, из заказа и т. Д. Некоторые из этих представлений являются простыми представлениями, другие содержат формы для добавления, редактирования или удаления данных. После того, как пользователь сделал то, что должен был сделать в этой форме, он должен быть перенаправлен в вызывающую форму или в другую форму.CakePHP: гибкое перенаправление для представлений и контроллеров
Использование $this->referer()
не будет работать, как некоторые Navigations должны идти, как это:
список заказов -> Изменить порядок -> удалить заказ -> список заказов.
Мне было бы хорошо с определением перенаправления для каждого вызова, поэтому я попытался использовать строки запроса и добавил ?redirectTarget=<wherever>
к каждой ссылке или перенаправлению. Для этого я сделал функцию контроллера
в AppController.php
public function getRedirectTarget() {
if ($this->request->query('redirectTarget')) {
return $this->request->query('redirectTarget');
} else {
return array(
'controller' => 'pages',
'action' => 'home'
);
}
}
Это работает для форм, как я могу использовать getRedirectTarget()
в моих контроллерах, но я не могу получить доступ к этой функции изнутри целью построить ссылку , (В leas я не сделал этого Can you call a controller function from a view in CakePHP?). В примере сверху я должен передать информацию из списка заказов в представление редактирования, чтобы построить ссылку и базовый контроллер для действия формы.
Теперь у меня разные мысли в голове, но ни с одним из них я не очень счастлив. Я не уверен, куда идти.
- Есть что-то в CakePhp Я еще не нашел?
- используя $ this-> requestAction?
- изменение всех форм и кнопок и выполнение всех перенаправлений в контроллерах?
- Есть ли способ создать переменную для каждого вида?
Как мне кажется, как требование к comon, и я довольно новичок в CakePHP. Я прошу вашего совета.
Спасибо, что работал для меня. Не могу сказать ничего о производительности, так как это очень маленькое приложение. – Axx