CakePHP - оставаясь на той же странице - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть простой контроллер для добавления строки в таблицу, но я хотел бы остаться на той же странице, если она не удалась, но только с предупреждением флэш-памяти.

class WarehouseAddressesController{
    public function itemToAdd($id = null){
        $exists = $this->ItemsAddress->find('first', array('conditions' => array(
            'warehouse_addresses_id' => $this->request->data['WarehouseAddress']['id'],
            'items_id' => $this->request->data['Items']['itemToAdd'])));

        if($this->request->is(array('post')) && empty($exists)){
            $data = array(
                'warehouse_addresses_id' => $this->request->data['WarehouseAddress']['id'],
                'items_id' => $this->request->data['Items']['itemToAdd']
            );

            if ($this->ItemsAddress->save($data, array('validate' => 'first',))) {
                $this->Flash->success(__('This item has been successfully added to the requested address.'));
                $this->redirect($this->referer());
            }
            if(!empty($exists)){
                $this->Flash->warning(__('This item already exists on this address'));
                $this->redirect($this->referer());
            }
            else {
                $this->Flash->error(__('This item could not be added to this address. Please, try again.'));
                $this->redirect($this->referer());
            }}}}

Когда элемент сохраняется, он остаетсяна той же странице, как и при использовании $ this-> referer, но когда элемент существует, он показывает ошибку Error: представление для WarehouseAddressesController :: itemToAdd () не найдено. Но я хотел бы остаться на странице и просто показать ошибку, что страница существует.

1 Ответ

0 голосов
/ 04 ноября 2019

Мне просто нужно было добавить return $ this-> redirect ($ this-> referer ());в первом блоке if и в последнем блоке if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...