Уведомление PHP Notice: Undefined index

ЗАКРЫТО InstantCMS 2.X

PHP Notice: Undefined index: is_fixed in

#1 25 октября 2021 в 08:47

Друзья, помогите пожалуйста убрать уведомление:

  1. PHP Notice: Undefined index: is_fixed in /system/controllers/dating/backend/grids/grid_dating_aims.php on line 37, referer: https://мой_домен/admin/controllers/edit/dating/dating_aims

 

Фрагмент кода со строкой 37

  1. $actions = array(
  2. 'title' => LANG_EDIT,
  3. 'class' => 'edit',
  4. 'href' => href_to($controller->root_url, 'meeting_aim_edit', array('{id}')),
  5. ),
  6. 'title' => LANG_DELETE,
  7. 'class' => 'delete',
  8. 'href' => href_to($controller->root_url, 'meeting_aim_delete', array('{id}')),
  9. 'confirm' => LANG_BACKEND_DELETE_MEETING_AIM,
  10. 'handler' => function($row){
  11. return !$row['is_fixed']; /*строка 37*/
  12. }
  13. )
  14. );
#2 25 октября 2021 в 09:06

Что то непонятное вообще. Вы всю 37 строку привели?

#3 25 октября 2021 в 09:22

Что то непонятное вообще. Вы всю 37 строку привели?

Lora

Да, вот весь файл /system/controllers/dating/backend/grids/grid_dating_aims.php

  1. <?php
  2.  
  3. function grid_dating_aims($controller){
  4.  
  5. $options = array(
  6. 'is_sortable' => true,
  7. 'is_pagination' => false,
  8. 'is_draggable' => true,
  9. 'order_by' => 'id',
  10. 'order_to' => 'asc',
  11. 'show_id' => true
  12. );
  13.  
  14. $columns = array(
  15. 'id' => array(
  16. 'title' => 'id',
  17. 'width' => 30,
  18. ),
  19. 'title' => array(
  20. 'title' => LANG_DATING_AIM,
  21. 'href' => href_to($controller->root_url, 'dating_aim_edit', array('{id}')),
  22. )
  23. );
  24.  
  25. $actions = array(
  26. 'title' => LANG_EDIT,
  27. 'class' => 'edit',
  28. 'href' => href_to($controller->root_url, 'dating_aim_edit', array('{id}')),
  29. ),
  30. 'title' => LANG_DELETE,
  31. 'class' => 'delete',
  32. 'href' => href_to($controller->root_url, 'dating_aim_delete', array('{id}')),
  33. 'confirm' => LANG_BACKEND_DELETE_DATING_AIM,
  34. 'handler' => function($row){
  35. return !$row['is_fixed'];
  36. }
  37. )
  38. );
  39.  
  40. return array(
  41. 'options' => $options,
  42. 'columns' => $columns,
  43. 'actions' => $actions
  44. );
  45.  
  46. }
  47.  
  48.  
#4 25 октября 2021 в 10:03

Если после изменения на php 7 вылезла ошибка и нарушился функционал, можно вернуть на php 5.6, а на копии сайта исправлять ошибку .

#5 25 октября 2021 в 10:06

Ошибка говорит об отсутствии столбца «is_fixed» в таблице базы данных из которой выводятся эти данные. А сама таблица тут не указана, ее надо смотреть, вероятно, в экшене бэкенда, где подключается этот файл грида.

#6 25 октября 2021 в 10:30

Первый раз вижу такую конструкцию.

return !$row;

Как это понять?

Добавлено спустя 4 минуты

Возможно тут должна быть проверка или условие.

 

 

 

 

#7 25 октября 2021 в 10:32

 Lora, если $row['is_fixed'] имеет тип bool, то всё норм.

#8 25 октября 2021 в 14:39

Как это понять?

Lora

Если бы я понимал, я бы не спрашивал тут, логично?

У меня из-за этих нотисов, лоадер крутится в админке, в настройки попасть не могу.

Добавлено спустя 14 минут

в экшене бэкенда,

Loadырь

Файл экшена \system\controllers\dating\backend\actions\dating_aim_edit.php

  1. <?php
  2.  
  3. class actionDatingDatingAimEdit extends cmsAction {
  4.  
  5. public function run($aim_id){
  6.  
  7. if (!$aim_id) { cmsCore::error404(); }
  8. $dating_model = cmsCore::getModel('dating');
  9. $form = $this->getForm('dating_aim', array('edit'));
  10. $is_submitted = $this->request->has('submit');
  11.  
  12. $aim = $dating_model->getDatingAim($aim_id);
  13.  
  14. if ($is_submitted){
  15.  
  16. $aim = $form->parse($this->request, $is_submitted);
  17. $errors = $form->validate($this, $aim);
  18.  
  19. if (!$errors){
  20. $dating_model->updateDatingAim($aim_id, $aim);
  21. cmsUser::addSessionMessage(LANG_BACKEND_EDIT_DATING_AIM_SUCCESS, 'success');
  22. $this->redirectToAction('dating_aims');
  23. }
  24. if ($errors){
  25. cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error');
  26. }
  27.  
  28. }
  29.  
  30. return cmsTemplate::getInstance()->render('backend/dating_aim', array(
  31. 'do' => 'edit',
  32. 'aim' => $aim,
  33. 'form' => $form,
  34. 'errors' => isset($errors) ? $errors : false
  35. ));
  36.  
  37. }
  38.  
  39. }
Добавлено спустя 3 часа

Забыл написать, на дефолтном шаблоне админки всё норм.

Добавлено спустя 21 минуту

Решено: добавил файлы backend от компонента в шаблон admincoreui. Всем спасибо за помощь👍🖐.

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.