Объект не найден в CodeIgniter

Несколько месяцев назад я задал вопрос о SO, связанный с проблемой маршрута.

CodeIgniter устраняет проблемы для доступа к папкам внешнего интерфейса и внутреннего интерфейса.

После добавления ответа в мой код моя проблема была решена.

Теперь я создал контроллер с именем Menu_controlle в папке frontend и создал файл services.php внутри frontend для просмотра.

Menu_control

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Menu_control extends CI_Controller {
  public $current_date;
  function __construct()
    {
        parent::__construct();
        $this->load->helper('form');
        $this->load->helper('url');
        date_default_timezone_set('Asia/Kolkata');
        $this->current_date= date('d-m-Y H:i:s');      
    }
 public function index()
  {
   $this->load->view('frontend/home');
  }
  public function services()
  {
   $this->load->view('frontend/services');
  }
}
?>

Я добавил в меню

<li><a href = "<?php echo site_url('Menu_control/services');?>">Our Servces</a></li>

Теперь, когда я нажимаю на наше сервисное меню, появляется ошибка «объект не найден». Объект не найден в CodeIgniter

Объект не найден в CodeIgniter Может ли кто-нибудь знать, что я получаю эту ошибку? Файл .htaccess пуст.

Имя класса должно соответствовать имени файла контроллера. Если класс Menu_control, файл должен быть Menu_control.php, а не Menu_controlle.php.

Javier Larroulet 24.09.2018 14:10

@JavierLarroulet, да, я свой вопрос редактировал. У меня такое же имя.

user9437856 24.09.2018 14:13

ой окей ... а вид существует? 404 может быть либо для контроллера (что, похоже, не так), либо для представления. Создан ли PHP-файл для представления в views/frontend/services?

Javier Larroulet 24.09.2018 16:21

Да, файл view / frontend / services существует в представлении. Даже моя функция индекса работает, но не может получить доступ к другой странице. Если я использую публичную функцию index () {$ this-> load-> view ('frontend / services'); } Тогда это работает

user9437856 24.09.2018 19:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
395
2

Ответы 2

попробуйте PrettyURL для вашего проекта. напишите следующий код в файле .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

или вы также можете использовать следующий базовый URL-адрес codeigniter

{{domain}}/index.php/{{controller_name}}/{{method_name}}

Спасибо за ответ, я добавил ваш код в htaccess и получаю сообщение об ошибке 404 Страница не найдена Запрошенная страница не найдена.

user9437856 24.09.2018 13:55

попробуйте базовый URL-адрес, как я предоставил

Vrushabh Ranpariya 24.09.2018 13:58

Я пробовал локальный / имя папки / Menu_control / services, это дает мне ошибку, чем я пробовал локальный / имя папки / index.php / Menu_control / services, то также та же ошибка.

user9437856 24.09.2018 14:04

затем проверьте имя файла и имя класса в этом файле, что оба должны быть одинаковыми. если все еще не работает, попробуйте что-нибудь сбросить печать и выйти; в функции __cunstruct, чтобы проверить, работает ли класс.

Vrushabh Ranpariya 24.09.2018 14:10

Название класса такое же. Я добавил exit (); в __construct, и теперь он работает, каков следующий процесс?

user9437856 24.09.2018 14:16

теперь вы должны понять, в чем заключаются ваши ошибки. (может быть в глобальной переменной)

Vrushabh Ranpariya 24.09.2018 14:31

Мой помощник - $ autoload ['helper'] = array ('form', 'url', 'file');

user9437856 24.09.2018 14:33

если у вас уже есть форма автозагрузки и URL-адрес, то почему вы снова пытаетесь загрузить его в конструкторе? убери это.

Vrushabh Ranpariya 24.09.2018 14:38

Снимаю сейчас. @Vrushabh, я просто хочу узнать код htaccess. У меня есть два файла htaccess: один находится внутри приложения, а другой - вне проекта. Я добавил ваш код вне проекта

user9437856 24.09.2018 14:43

Что касается файлов, недоступных в папке приложения, это связано с тем, что файл .htaccess в этой папке запрещает любой доступ в целом. Чтобы предотвратить непреднамеренное раскрытие файла.

Vrushabh Ranpariya 25.09.2018 06:54

Да, отказать файлу. Даже моя функция индекса работает, но не может получить доступ к другой странице. Если я использую публичную функцию index () {$ this-> load-> view ('frontend / services'); } Тогда это работает

user9437856 25.09.2018 10:05

Не раньше. Я все еще сталкиваюсь с той же проблемой.

user9437856 26.09.2018 08:21

попробуйте следующий код в файле .htaccess вашей корневой папки.

RewriteEngine on
RewriteBase /folder_name/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|style)
RewriteRule ^(.*) index.php?/$1

Замените имя_папки именем папки вашего проекта.

ОБНОВЛЕННЫЙ ОТВЕТ

Структура папок и файл Menu_control.php.

У меня это работает. Файл .htaccess корневой папки содержит код, который я предоставил ранее.

Обновлен файл htaccess с именем папки

RewriteEngine on
RewriteBase /project/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|style)
RewriteRule ^(.*) index.php?/$1

Спасибо за ответ, я добавил ваш код в htaccess, но все равно получаю ту же проблему

user9437856 24.09.2018 15:47

Какой htaccess вы обновили? Есть два файла .htaccess: один находится в папке приложения, а другой - вне папки приложения (т. Е. В корневой папке).

sady 25.09.2018 11:28

Да, обновил root htaccess, который находится за пределами папки приложения

user9437856 25.09.2018 12:03

Не знаю, почему у меня это не работает. Можете ли вы поделиться своим кодом htaccess с именем папки?

user9437856 26.09.2018 08:23

@ user9437856..Да, я обновил ответ. Вы, конечно, можете его изучить.

sady 26.09.2018 09:26

Дайте мне время, чтобы внедрить ваш код .. Скоро ответим

user9437856 26.09.2018 09:44

@ user9437856 .. Нет, это не совсем так.

sady 26.09.2018 13:05

Не знаю, почему у меня это не работает. Я удаляю CI и снова загружаю, а затем попробую ваш код. Так что дай мне немного времени. Я сообщу вам. Пожалуйста

user9437856 26.09.2018 16:15

@ user9437856 .. да, сделайте новую установку.

sady 26.09.2018 17:13

Я попробовал ваш код после новой установки, но все еще не работал. Можете ли вы поделиться изображением папки контроллера?

user9437856 22.11.2018 12:54

@ user9437856..Ладно, тогда зайдите по URL как "base_url / index.php / menu_control / services". Посмотрите, работает ли он.

sady 22.11.2018 14:32

У меня есть папка backend и frontend, а также на контроллере. Если я напрямую вызываю Menu_control, он работает, но если я добавляю backend / Menu_control, он не работает. Это путь к моей папке изображений i.stack.imgur.com/frkdG.png Я обновил имя контроллера с menu_controler на Access_control

user9437856 22.11.2018 19:02

Другие вопросы по теме