Выходит ошибка в codeigniter invalid argument supplied for foreach(), как исправить?
Ошибка в codeigniter при создание Описании фильмов
Message: Invalid argument supplied for foreach()
Filename: descriptions/index.php
Line Number: 5
если даже все указано верно без ошибок, параметр задан, путь к бд задан, но выходит ошибка не уходит
11 ответов
Покажите содержимое файла descriptions/index.php, а также контроллер, который отвечает за это view.
Этот файл Filename: descriptions/index.php тоже покажите
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');
}
<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 ?>
еще при переходе по ссылке descriptions/create/ выходит так же ошибка
Невозможно загрузить запрошенный файл: description / create.php
хотя название description нигде не указана только descriptionS
echo "<pre>"; var_dump($this->data['descriptions']); echo "</pre>";
не помогло
то есть ничего не вывел
ааа я параметр в модели не правильно задал, все заработало спасибо
В контроллере в методе 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']/
Что не помогло? var_dump должен содержимое массива $this->data['descriptions'] показать, а не решить проблему.
Если var_dump ничего не выводит - это значит, что в массиве $this->data['descriptions'] ничего нет, значит нужно смотреть модель, какой там запрос написан и саму базу.