2017-03-08 11 views
0

私はCodeIgniterのに新しいです、URIルーティング - CodeIgniterの

私はこのルート

$ルート[「ログイン」] =「TravelApi /ログイン/」にログインページ要求をリダイレクトします。

だから、http://localhost.com/codeigniter/loginリクエストはcontroller/TravelApi.phpのTravelApiクラスのlogin()関数を介してルーティングする必要があります。

コントローラ

public function login(){ 

     $contents['login_url'] = $this->googleplus->loginURL(); 
     $this->load->view('frontend/login',$contents); 
} 

私の質問は:上記のコントローラを介して要求をルーティング

してから/ login.phpをフロントエンドに行く - login.phpファイルがロードされますが、ヘッダーとフッターなしで取得します。

しかし、私はのconfig/routes.phpの

$route['login'] = 'TravelApi/login/'; 

からこのルートを削除すると、その後の要求は、ルートコントローラを介して、直接には、/ login.phpをフロントエンドになっていません。ここではheader.fpファイルをheaderとfooterで読み込みます。

しかし、私の必要性は、コントローラからのルーティングです。ヘッダフッタ付きのビューファイルをロードします。

コントローラの機能を経由するときにヘッダーフッターが読み込まれないのはなぜですか?

EDIT:

私はなぜそれが私のコントローラの機能によって、ヘッダフッタ際のルートをロードしないことをwelcome.php

public function pages($alias=NULL) 
{ 
    $page='frontend/'.$alias; 
    $this->load->view('frontend/common/head'); // For Head Scripts 
    $this->load->view('frontend/common/header', $this->common_menu('TopMenu')); // For Header Content 
    $this->load->view('frontend/common/menus', $this->common_menu('MainMenu')); // For Menus 
    $this->load->view($page); 
    $this->load->view('frontend/common/footer'); // For Footer Content 
    $this->load->view('frontend/common/foot'); // For Footer Scripts 

} 

しかし、まだはっきりしないデフォルトのコントローラ内の関数を見つけましたか?

+0

は、ヘッダーとフッターのファイルを区切っていますか? – shafiq

+0

はいこのファイルはview/frontend/common/header.phpです。ヘッダとフッタをロードするコアコントローラには関数があることがわかりました。私の質問を編集中です –

答えて

0

編集であなた自身の質問に答えることができます。ヘッダーとフッターは別々のビューファイルにあり、それらもロードする必要があります。したがって、このような作業をする必要があります:

public function login(){ 

    $contents['login_url'] = $this->googleplus->loginURL(); 
    $this->load->view('frontend/common/head'); // For Head Scripts 
    $this->load->view('frontend/common/header', $this->common_menu('TopMenu')); // For Header Content 
    $this->load->view('frontend/common/menus', $this->common_menu('MainMenu')); 

    $this->load->view('frontend/login',$contents); 

// For Menus 
    $page='frontend/'.$alias; 
    $this->load->view($page); 
    $this->load->view('frontend/common/footer'); // For Footer Content 
    $this->load->view('frontend/common/foot'); // For Footer Scripts 
} 

注:それはおそらく他のページの主な内容だような行$this->load->view($page);が見え、ここでの主な内容は$this->load->view('frontend/login',$contents);する必要があり、その場合は$ページビューの負荷を削除します。

+0

フッタービューが正しく読み込まれています。メニューが読み込まれず、エラーが表示されています。メニューが動的でデータベースからデータを取得するためです。しかし、それでもconfig/routes.phpからこのルートを削除すると、/ login.phpが直接表示され、ヘッダフッタがよく読み込まれます。どこから来ているのですか? –

+0

私はちょうどwelcome.phpで$ page変数が定義されていることに気付きましたが、定義する必要がある$別名変数は残っています。そして、あなたがルートを削除した場合、それはfrontend/login.phpをロードしている必要があります – Pacio

+0

$別名には何が含まれていますか? –

関連する問題