2013-08-05 42 views
1

我是laravel的新手,剛試過一些例子。這就是:路由和控制器

laravel-master\app\controllers\account.php -

class AccountController extends BaseController 
{ 
    public function action_index() 
    { 
     echo "This is the profile page."; 
    } 
    public function action_login() 
    { 
     echo "This is the login form."; 
    } 
    public function action_logout() 
    { 
     echo "This is the logout action."; 
    } 
} 

然後我說的一行 - laravel-master\app\routes.php

Route::controller('account'); 

所以,當我會去的主網頁

  • 的myproject /帳號/登錄它應該顯示 「這是登錄表單。」 。

但其示出

  • Missing argument 2 for Illuminate\Routing\Router::controller(), called in C:\Program Files\Zend\Apache2\htdocs\laravel-master\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 177 and defined

不知道是什麼問題。我在哪裏錯了嗎?

回答

7

更改控制文件的名稱:

laravel-master\app\controllers\AccountController.php 

更改路線定義:

Route::controller('account', 'AccountController'); 

改變控制器的方法:

class AccountController extends BaseController 
{ 
    public function getIndex() 
    { 
     echo "This is the profile page."; 
    } 
    public function getLogin() 
    { 
     echo "This is the login form."; 
    } 
    public function getLogout() 
    { 
     echo "This is the logout action."; 
    } 
} 
+0

是的,它是工作後,我從account.php名稱更改爲AccountController.php。但我didnot不明白的東西。我試圖myproject /帳戶/登錄其顯示結果頁。但我嘗試了我的項目/帳戶/登錄。它顯示「Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException。 「然後我再次將functon名稱改爲get_index(),get_login,get_logout()。當我去我的項目/帳戶/登錄時,它顯示result.So爲什麼它顯示錯誤時,我將信件更改爲資本getIndex,getLogin,getLogout,get_Index,get_Login,get_logout? – user1638279

+0

還有/ account/Login,/ account/Index,/ account/Logout不起作用,但/ account/login,/ account/logout,/ account/index working 。 – user1638279

+0

使用控制器路由時Laravel 4允許您使用get_login或getLogin,它們都可以通過帳戶/登錄訪問,但不能*帳戶/登錄,帳戶/登錄等。換句話說,區分大小寫 – Makita

1

不是Laravel專家,但我認爲您的Route::controller缺少路線目的地的參數,您應該使用控制器類的全名。嘗試

Route::controller('account', 'AccountController') 

我也不確定action_ s。如果我正確理解documentation on controllers,它們必須以HTTP動詞爲前綴。的

public function getIndex() 

代替

public function action_index() 
+0

是的,就像你寫的那樣,我已經改變了那些東西,但現在它的顯示 - 「ReflectionException。類帳戶控制器不存在。「 – user1638279