2016-10-18 2 views
1

Я вызываю функцию контроллера из представления с базовым url, это собирается к этой функции, но показывая 404 Страница не найдена. .htaccess я использую этотвызов функции из представления в codeigniter не работает

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 
</IfModule> 

Config.php

$config['index_page'] = ''; 

Автозагр

$autoload['helper'] = array('form', 'url', 'security'); 

контроллер по умолчанию в routes.php является

$route['default_controller'] = 'prog_bar'; 

base_url является

$config['base_url'] = 'http://localhost:8080/jsLearning/prog_bar/'; 

вид

a href="<?php echo base_url().'file_func'; ?>">abc</a> 

контроллер

 <?php 
    defined('BASEPATH') OR exit('No direct script access allowed'); 

    class prog_bar extends CI_Controller { 

      public function index() 
      { 
        $this->load->view('prog_bar_view'); 

      } 


      public function file_func(){ 

       echo "form"; 
      }   
    } 

что еще мне не хватает?

+0

Итак, что происходит если вы используете http: // localhost: 8080/index.php/jsLearning/или http: // localhost: 8080/index.php/jslearning /? Вы используете окна или Linux? – TimBrownlaw

ответ

0

Ваш base_url является неправильным. Он должен быть

$config['base_url'] = 'http://localhost:8080/jsLearning/'; 

и теперь в HTML использовать site_url() вместо base_url() как

<a href="<?php echo site_url('prog_bar/file_func'); ?>">abc</a> 

base_url() следует использовать только ресурсы ссылаются как файл изображения, CSS файл и т.д.

Обновите свою .htaccess следуя

+0

по-прежнему та же ошибка – user6920839

+0

Я попытался в обоих направлениях – user6920839

+0

вы можете показать URL-адрес, к которому вы пытаетесь получить доступ. 'http: // localhost: 8080/jsLearning/prog_bar/file_func' ?? –

1

Имя класса должно начинаться с заглавной буквы, Изменить этот

class prog_bar extends CI_Controller { 

в

class Prog_bar extends CI_Controller { 
0

Я думаю, вы должны быть большими с настройками ниже:

В config.php:

$config['base_url'] = 'http://localhost:8080/jsLearning/'; 

В вашей версии:

<a href="<?php echo base_url(); ?>file_func">abc</a> 

в контроллере:

class Prog_bar extends CI_Controller { 

.htaccess

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

Если у вас есть еще ошибка, проверьте, чтобы увидеть, что ваше соединение base_url к ..Создайте ссылку

<a href="<?php echo base_url(); ?>">Base Url</a> 

, чтобы увидеть в браузере, где он есть.

0

Вы не используете базовый url для ссылок внутри сайта. Использовать имя контроллера и имя метода

<?php echo anchor("Pages/entry", "Post Entry"); ?> 

Что такое форма? Он не определен. Это страница? Если это так, у вас нет адреса для просмотра. Если его сниппета, вы по-прежнему нужен адрес

$this->load->view('prog_bar_view') 

функция не будет просто показать вид или фрагмент кода, не говорят, где он находится. Если вы пытаетесь включить форму на странице, просто используйте вложенные представления и в своем основном (html) представлении загрузите представление, которое вы пытаетесь показать с помощью $ this-> load-> view()

Смежные вопросы