Форма "Add" для админ панели

#1 29 декабря 2016 в 23:43
Друзья не могу написать форму add для админки выдаёт ошибки

Cам файл add (fields_add)

  1. <?php
  2.  
  3. class actionSportFieldsAdd extends cmsAction {
  4.  
  5. public function run(){
  6.  
  7. // Загружаем товар из базы
  8. $sport = $this->model->getSport($id);
  9.  
  10. // Загружаем структуру формы (см. главу "Формы")
  11. $form = $this->getForm('field');
  12.  
  13. // Кнопка 'submit' нажата?
  14. $is_submitted = $this->request->has('submit');
  15.  
  16. if ($is_submitted) {
  17. // Следующие действия будут выполнены только если данный код был вызван,
  18. // в ответ на отправку формы из шаблона на сервер:
  19.  
  20. // Получение и парсинг данных из формы
  21. $data = $form->parse($this->request, $is_submitted);
  22.  
  23. // Валидизируем данные
  24. $errors = $form->validate($this, $data);
  25. // Если в форме найдены ошибки,
  26. // то $errors будет содержать массив вида 'поле' => 'текст ошибки'
  27. // Если ошибок нет, $errors будет содержать false
  28.  
  29. // Если форма прошла валидацию
  30. if (!$errors) {
  31.  
  32. // Сохраняем изменённые данные в базе данных
  33. $this->model->addSport($id, $data);
  34.  
  35. // Перенаправляем на просмотр изменённого товара
  36. $this->redirectToAction('view', array($id));
  37. }
  38. }
  39.  
  40. // Передача товара из формы в шаблон
  41. return $this->cms_template->render('backend/field', array(
  42. 'do' => 'add',
  43. 'sport' => $sport,
  44. 'form' => $form,
  45. 'errors' => $errors
  46. ));
  47.  
  48. }
  49. }

Ошибки:

Notice: Undefined variable: id in C:\OpenServer\domains\localhost\system\controllers\sport\backend\actions\fields_add.php on line 8

Warning: Missing argument 1 for formSportField::init(), called in C:\OpenServer\domains\localhost\system\core\form.php on line 580 and defined in C:\OpenServer\domains\localhost\system\controllers\sport\backend\forms\form_field.php on line 5

Notice: Undefined variable: errors in C:\OpenServer\domains\localhost\system\controllers\sport\backend\actions\fields_add.php on line 46

Notice: Undefined variable: field in C:\OpenServer\domains\localhost\templates\default\controllers\sport\backend\field.tpl.php on line 24


Вот model.php
  1.  
  2. <?php
  3.  
  4. class modelSport extends cmsModel {
  5.  
  6. public function getSport($id){
  7.  
  8. $sport = $this->getItemById('sport', $id);
  9.  
  10. $this->filterEqual('id', $id);
  11.  
  12. return $sport;
  13.  
  14. }
  15.  
  16. public function getSports(){
  17.  
  18. return $this->get('sport');
  19.  
  20. }
  21.  
  22. public function getSportsCount(){
  23.  
  24. return $this->getCount('sport');
  25.  
  26. }
  27.  
  28. public function getSportField(){
  29.  
  30. return $this->get('sport');
  31.  
  32. }
  33.  
  34. public function deleteSport($id){
  35.  
  36. return $this->delete('sport', $id);
  37.  
  38. }
  39.  
  40. public function updateSport($id, $sport){
  41.  
  42. return $this->update('sport', $id, $sport);
  43.  
  44. }
  45.  
  46. public function addSport($sport){
  47.  
  48. return $this->insert('sport', $sport);
  49.  
  50. }
  51.  
  52.  
  53.  
  54.  
  55. }
#2 29 декабря 2016 в 23:52
В run() передайте $id
  1. public function run($id = false){
#3 30 декабря 2016 в 00:05


В run() передайте $id

  1. public function run($id = false){

Evanescence
Cделал спасибо!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.