Загрузите переменную представления представления в функцию контроллера - CodeIgniter - PullRequest
2 голосов
/ 14 ноября 2011

Я использую CodeIgniter и хочу загрузить представление, такое как:

$this->load->view('image/delete/' . $_POST['id'], $data);

$ _POST ['id'] является обязательным параметром моей функции 'delete' внутри моего контроллера 'image',Я бы подумал, что это будет работать нормально, но я получаю сообщение об ошибке CI:

"Невозможно загрузить требуемый файл: image / delete / 113.php"

Я неЯ не понимаю, почему CI добавляет «.php» в конец этого, неудивительно, что он не может найти этот файл.Что я делаю не так?

Ответы [ 3 ]

1 голос
/ 14 ноября 2011

Расширение файла .php указывать не нужно, если только вы не используете что-то кроме .php.

Код в контроллере «image»:

public function delete($parameter=false)
{

some_delete_function($parameter);

//and load view

}
1 голос
/ 14 ноября 2011

В дополнение к ответу Ивана, вы пытаетесь нарушить принцип MVC: разделение интересов.

Представления должны просто отображать данные, они никогда не должны приобретать такую ​​функциональность, как удаление ресурсов.

Вместо загрузки представления необходимо использовать функцию redirect() в классе URL-помощника , чтобы перенаправить браузер на URL "image/delete/".$image_id

Тогда, как предположил Иван, вам понадобится контроллер Image с функцией delete($id). Эта функция удалит ваше изображение и затем загрузит вид, чтобы указать, что ресурс был удален.

0 голосов
/ 14 ноября 2011

Похоже, вы пытаетесь использовать представление для загрузки URL / image / delete / 113.Но он пытается загрузить представление ~ application / views / images / delete / 113 с вашего жесткого диска.

Я бы рекомендовал просто удалить изображение из вашего кода, возможно, создать библиотеку, если она сложную илипомощник, если это не так, и вызвать его из контроллера там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...