2013-12-12 84 views
0

嗨,那麼你怎麼做到kohana 3.3和kostache?匹配url到標題頁

<form method="POST" action="user/login"> 

<input type="text" name="email" /> 
<input type="passowrd" name="password" /> 

</form> 

控制器

public function action_login() 
{ 
    $user = Auth::instance()->login($this->request->post('email'),$this->request->post('password')); 

    if($user) 
    { 
     $view = Kostache_Layout::factory() 
     $layout = new View_Pages_User_Info(); 

     $this->response->body($this->view->render($layout)); 
    } 
    else 
    { 
     $this->show_error_page(); 
    } 

} 

類視圖

class View_Pages_User_Info 
{ 
    public $title= "Profile"; 
} 

鬍子模板

<p> This is the Profile Page</p> 

到目前爲止好,我現在在個人資料頁,但網址是

localhost/kohana_app/user/login 

,而不是

localhost/kohana_app/user/profile 

我知道我可以改變action_loginaction_profile以匹配網址和頁面標題,但有沒有其他方法可以做到這一點?

回答

1

如果登錄成功並重定向到配置文件頁面,請忘記響應正文。

HTTP::redirect(Route::get('route that routes to the profile page')->uri(/* Just guessing */'action' => 'profile')); 

請閱讀Post/Redirect/Get


例路線(S)的要求

Route::set('home', '') 
    ->defaults(array(
     'controller' => 'Home', 
    )); 

Route::set('auth', 'user/<action>', array('action' => 'login|logout')) 
    ->defaults(array(
     'controller' => 'User', 
    )); 

Route::set('user/profile/edit', 'user/profile/edit(/<user>)') 
    ->defaults(array(
     'controller' => 'User_Profile', // Controller_User_Profile 
     'action' => 'edit', 
    )); 

Route::set('user/profile/view', 'user/profile(/<action>(/<user>))', array('action' => 'edit')) 
    ->defaults(array(
     'controller' => 'User_Profile', 
    )); 

############ 

class Controller_User_Profile { 

    public function action_index() 
    { 
     // ... 

     $this->action_view($user->username()); 
    } 

    public function action_view($user = NULL) 
    { 
     if ($user === NULL) 
     { 
      $user = $this->request->param('user'); 
     } 

     // ... 
    } 
} 

個人而言,我喜歡我的用戶發送到儀表盤,它可以是(來自)查看自己的個人資料不同。

這只是A這樣做。

+0

因此,爲此,我需要在引導文件中設置另一條路徑?是的,然後在我的個人資料頁面上使用它。 – Defyleiti

+0

http://kohanaframework.org/3.3/guide/kohana/tips#dont-try-and-use-one-route-for-everything您可以做的最好的事情是刪除'默認'示例路線並創建更具體的路線。趕上所有路線都不好。所以如果可以的話,儘量避免它們,它看起來像你從頭開始,所以你沒有任何藉口:p再次:刪除'默認'路線。 – Darsstar

+0

好的,非常感謝這個想法。我真的很感謝你的幫助:) – Defyleiti