Как исправить ошибку warning: illegal string offset slug?

1

При написание страницы редактирования фильма выходит следующая ошибка 

Warning: Illegal string offset 'slug'

страница

<div><h1><?= $title; ?></h1><hr>
<p>
<?php foreach ($movie_slug as $key => $value): ?>
<a href="/movies_admin/edit/<?= $value['slug']; ?>">редактировать</a> ---> В этом месте
<a href="/movies_admin/delete/<?= $value['slug']; ?>">Удалить</a> ---> В этом месте тоже самое
<?php endforeach ?>
</p>
</div>

код контролера 

$this->data['movie_slug'] = $this->films_model->getAdmin($slug);

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

$this->data['title'] = $this->data['movie_slug']['name'];

$this->data['year'] = $this->data['movie_slug']['year'];
$this->data['rating'] = $this->data['movie_slug']['rating'];
$this->data['descriptions_movie'] = $this->data['movie_slug']['descriptions'];
$this->data['player_code'] = $this->data['movie_slug']['player_code'];
$this->data['producer'] = $this->data['movie_slug']['producer'];

$this->load->view('templates/header', $this->data);
$this->load->view('movies_admin/view_admin', $this->data); ---> вызывает страницу с ошибкой
$this->load->view('templates/footer');

$this->load->helper('url_helper');

почему возникает такая ошибка в гугле ничего толкового не нашел 

php
codeigniter

5 ответов

1

Подозреваю, что в полученном массиве нет параметра slug:

$this->data['movie_slug'] = $this->films_model->getAdmin($slug);

Вероятно нужно писать вместо:

<?php foreach ($movie_slug as $key => $value): ?>
<a href="/movies_admin/edit/<?= $value['slug']; ?>">редактировать</a> ---> В этом месте
<a href="/movies_admin/delete/<?= $value['slug']; ?>">Удалить</a> ---> В этом месте тоже самое
<?php endforeach ?>

такой код без цикла:

<a href="/movies_admin/edit/<?= $movie_slug['slug']; ?>">редактировать</a>
<a href="/movies_admin/delete/<?= $movie_slug['slug']; ?>">Удалить</a>
1

В контроллере напишите после запроса из базы:

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

и посмотрите есть ли в массиве вообще ключ slug.

2

Значит структуру базы нужно смотреть и модель, где ошибка

1

Разницы нету что с циклом, что без него один и тот же результат

1

нету 

Sign up or Log in to write an answer