Выходит ошибка в codeigniter invalid argument supplied for foreach(), как исправить?

3
1

Ошибка в codeigniter при создание Описании фильмов 

Message: Invalid argument supplied for foreach()

Filename: descriptions/index.php

Line Number: 5

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


Виталий Ефимов

4 years ago

11 ответов





ааа я параметр в модели не правильно задал, все заработало спасибо 

Виталий Ефимов

4 years ago

Если var_dump ничего не выводит - это значит, что в массиве $this->data['descriptions'] ничего нет, значит нужно смотреть модель, какой там запрос написан и саму базу.

student_BUOPPsrj

4 years ago

то есть ничего не вывел 

Виталий Ефимов

4 years ago

Что не помогло? var_dump должен содержимое массива $this->data['descriptions'] показать, а не решить проблему.  

student_BUOPPsrj

4 years ago

echo "<pre>"; var_dump($this->data['descriptions']); echo "</pre>";

не помогло 

Виталий Ефимов

4 years ago

еще при переходе по ссылке descriptions/create/ выходит так же ошибка

Невозможно загрузить запрошенный файл: description / create.php  

хотя название description нигде не указана только descriptionS

Виталий Ефимов

4 years ago

В контроллере в методе index вставьте var_dump, т.е. так:

public function index($slug = NULL)

{
    $this->data['title'] = "Описание"; 
    $this->data['descriptions'] = $this->descriptions_model->getDescriptions();

    echo "<pre>";
    var_dump($this->data['descriptions']);
    echo "</pre>";

    $this->load->view('templates/header', $this->data);
    $this->load->view('descriptions/index', $this->data);
    $this->load->view('templates/footer');
}

Вывод вардампа сюда приложите. Если в foreach такая ошибка - это обычно значит, что нет в массиве $value['title'] или $value['slug']/

student_BUOPPsrj

4 years ago
<h1>Описание</h1>

<p><a href="/descriptions/create/">добавить описание</a></p><br>

<?php foreach ($descriptions as $key => $value): ?>
<p>
<a href="view/<?= $value['slug']; ?>"><?= $value['title']; ?></a> |
<a href="edit/<?= $value['slug']; ?>">редактировать</a> |
<a href="delete/<?= $value['slug']; ?>">Удалить</a>
</p>
<?php endforeach ?>

Виталий Ефимов

4 years ago

Этот файл Filename: descriptions/index.php тоже покажите

student_G0lztEyB

4 years ago
public function index($slug = NULL)

{
$this->data['title'] = "Описание";
$this->data['descriptions'] = $this->descriptions_model->getDescriptions();

$this->load->view('templates/header', $this->data);
$this->load->view('descriptions/index', $this->data);
$this->load->view('templates/footer');
}

public function view($slug = NULL)

{
$this->data['descriptions_item'] = $this->descriptions_model->getDescriptions($slug);

if(empty($this->data['descriptions_item'])) {
show_404();
}

$this->data['title'] = $this->data['descriptions_item']['title'];
$this->data['content'] = $this->data['descriptions_item']['text'];

$this->load->view('templates/header', $this->data);
$this->load->view('descriptions/view', $this->data);
$this->load->view('templates/footer');
}

Виталий Ефимов

4 years ago

Покажите содержимое файла descriptions/index.php, а также контроллер, который отвечает за это view.

student_G0lztEyB

4 years ago

Ваш ответ