0

codeigniter 2.1.3 の新規インストールでは、2 つの機能を持つコントローラー「home.php」があります。

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

class Home extends CI_Controller {

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

    public function homefunction()
    {
        $this->load->view('homefunction');
    }

}

「home.php」というビューがあります。アンカーはメニューを表します。

<p>Home</p>
<br/>
<a href="home">Home</a>
<a href="home/homefunction">Home Function</a>

およびビュー「homefunction.php」

<p>Function in the Home controller</p>
<br/>
<a href="home">Home</a>
<a href="home/homefunction">Home Function</a>

私のルート:

$route['default_controller'] = "home";

.htaccess と config.php を使用して URL から index.php を「削除」しました。私の .htaccess は次のとおりです。

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

私が設定したconfig.phpファイルで:

$config['base_url'] = 'http://localhost/test';
$config['index_page'] = '';

実行するhttp://localhost/testと、ホームページにメニューがロードされます。ブラウザの URL はlocalhost/test/. 次に、「ホーム」アンカー メニュー項目をクリックすると、ブラウザの URL が になりlocalhost/test/homeます。他のメニュー項目「ホーム機能」をクリックすると、ホーム機能ページが読み込まれ、URL が になりlocalhost/test/home/homefunctionます。ホーム機能ビューのメニューで、「ホーム」項目をクリックすると、URL が になりlocalhost/test/home/homeます。になることを期待していました localhost/test/home。次に、[ホーム機能] メニュー項目をクリックします ホーム機能ビューが読み込まれず、URL が になりlocalhost/test/home/home/homefunction、ホーム機能ページが読み込まれませんホームをもう一度クリックすると URLが表示され、localhost/test/home/home/homeホーム機能メニュー項目をクリックするたびにこれが行われます次に、ホーム メニュー項目のホーム セクションが URL に追加されます。

ルーティングに関係している可能性のある単純なものであることはわかっていますが、立ち往生していて、Googleで同様の問題を見つけることができません。誰でも助けることができますか?

4

2 に答える 2

1

URLヘルパークラスをロードします。それはあなたを簡単でダイナミックにするでしょう。

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

または、 config/autoload.phpでデフォルトとしてロードします

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

そしてあなたがあなたにURLを割り当てるたびに:

<a href="<?=site_url('home');?>">Home</a>
<a href="<?=site_url('home/homefunction');?>">Home Function</a>

ローカルURLを生成する必要があるときはいつでもこの関数を使用して、URLが変更された場合にページの移植性を高めることをお勧めします。

URLヘルパー:codeigniter

于 2013-01-02T11:24:54.333 に答える
0

をやる

<a href="/home">Home</a>
<a href="/home/homefunction">Home Function</a>

また

<a href="<?=base_url('home');?>">Home</a>
<a href="<?=base_url('home/homefunction');?>">Home Function</a>
于 2013-01-02T11:13:25.757 に答える