Я новичок в торте, извините, если это простая проблема.
Когда я закончу сохранение данных, и я попытаюсь показать сообщение с информацией о том, сохранен или не сохранен пользователь, покажите мне следующую ошибку:
Ошибка: вызов функции-функции члена () для объекта, не являющегося объектом. Файл C: \ wamp \ www \ proyecto \ src \ Controller \ AdministradorsController.php. Строка: 76
AdministradorsController расширяет AppController
public function add() { $administrador = $this->Administradors->newEntity(); if ($this->request->is('post')) { $this->loadModel('Personas'); $persona = $this->Personas->newEntity(); $persona->rut = $this->request->data['Personas']['rut']; $persona->sexo = $this->request->data['Personas']['sexo']; $persona->nombre = $this->request->data['Personas']['nombre']; $persona->apellido_paterno = $this->request->data['Personas']['apellido_paterno']; $persona->apellido_materno = $this->request->data['Personas']['apellido_materno']; $persona->direccion = $this->request->data['Personas']['direccion']; $persona->telefono_fijo = $this->request->data['Personas']['telefono_fijo']; $persona->telefono_movil = $this->request->data['Personas']['telefono_movil']; $persona->fecha_nacimiento = $this->request->data['Personas']['fecha_nacimiento']; $persona->email = $this->request->data['Personas']['email']; $persona->comuna_id = $this->request->data['Personas']['comuna_id']; if(!$this->Personas->save($persona)){ $this->Flash->error('The administrador could not be saved. Please, try again.'); } $administrador = $this->Administradors->newEntity(); $administrador->persona_id = $persona->id; if(!$this->Administradors->save($administrador)){ $this->Flash->error('The administrador could not be saved. Please, try again.'); } $this->loadModel('Users'); $user = $this->Users->newEntity(); $user->username = $persona->email; $user->password = $this->rand_passwd(6); $user->estado = true; $user->persona_id = $persona->id; $user->role_id = ADMIN; if($this->Users->save($user)){ $this->Flash->success('The administrador has been saved.'); return $this->redirect(['action' => 'index']); }else{ $this->Flash->error('The administrador could not be saved. Please, try again.'); } } $personas = $this->Administradors->Personas->find('list', ['limit' => 200]); $this->set(compact('administrador', 'personas')); $this->set('_serialize', ['administrador']); $this->loadModel('Regions'); $comunas = $this->Regions->Comunas->find('list', ['limit' => 200]); $this->set(compact('comuna', 'comunas')); $this->set('_serialize', ['comuna']); }
Данные вставляются в базу данных, но сообщение Flash дает мне ошибку, извините за мой плохой английский и thx
Если вы загружаете компонент Flash
в свой AppController
, проблема может заключаться в том, что у вас есть метод initialize()
в вашем AdministratorsController
и вы не вызываете parent::initialize();
в этом методе. Для этого необходимо, чтобы все helpers
, components
и т. Д., Инициализированные в методе initialize()
AppController
, переносятся.
В контроллере:
<?php $this->Flash->error(__('Your error message'), ['key' => 'error']); ?>
для облегчения работы с Flash-сообщениями вы можете использовать простой плагин уведомления turbo-tribble