2013-08-05 38 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