cakephp: перейти на предыдущую страницу после редактирования плеера
У меня есть игроки на страницах. Я, например, на странице 13. Здесь я нажимаю на функцию редактирования, чтобы редактировать игрока. Теперь после редактирования я хочу вернуться на эту страницу 13, но она остается на странице редактирования.
редактировать действие:
public function admin_edit($id = null) {
if (!$this->Player->exists($id)) {
throw new NotFoundException(__('Invalid player'));
}
if ($this->request->is(array('post', 'put'))) {
$data = $this->request->data['Player'];
if(!$data['player_image']['name']){
unset($data['player_image']);
}
if ($this->Player->save($data)) {
$this->Session->setFlash(__('The player has been saved.'));
$this->redirect($this->referer());
} else {
$this->Session->setFlash(__('The player could not be saved. Please, try again.'));
}
} else {
$options = array('conditions' => array('Player.' . $this->Player->primaryKey => $id));
$this->request->data = $this->Player->find('first', $options);
}
$videos = $this->Player->Video->find('list');
$this->set(compact('videos'));
}
просмотреть действие:
public function admin_view($id = null) {
if (!$this->Player->exists($id)) {
throw new NotFoundException(__('Invalid player'));
}
$options = array('conditions' => array('Player.' . $this->Player->primaryKey => $id));
$this->set('player', $this->Player->find('first', $options));
}
1 ответ
Решение
Вы можете сохранить ссылающуюся страницу в else
раздел if/else
структура функции редактирования. Затем используйте это сохраненное значение в if
(То есть, $this->request->is(array('post', 'put')) = TRUE
раздел.
Итак, ваш код будет выглядеть примерно так:
public function admin_edit($id = null) {
if ($this->request->is(array('post', 'put'))) {
/* your other code */
$sendback = $this->Session->read('referer');
$this->Session->delete('referer');
$this->redirect($sendback);
} else {
/* your other code */
$this->Session->write('referer', $this->referer());
}
}