Php 路由和控制器

Php 路由和控制器,php,laravel,laravel-4,Php,Laravel,Laravel 4,我对拉雷维尔不熟悉,只是试了一些例子。这是: laravel master\app\controllers\account.php- class AccountController extends BaseController { public function action_index() { echo "This is the profile page."; } public function action_login() {

我对拉雷维尔不熟悉,只是试了一些例子。这是:

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');
那么我什么时候去主页呢

  • 我的项目/帐户/登录信息应显示 “这是登录表单。”
但它的表现

  • 在第177行的C:\Program Files\Zend\Apache2\htdocs\laravel master\vendor\laravel\framework\src\Illumb\Support\Facades\Facade.php中调用并定义的Illumb\Routing\Router::controller()缺少参数2

不知道是什么问题。我哪里错了吗?

不是Laravel专家,但我认为您的
路由::控制器
缺少路由目的地的参数,您应该使用控制器类的全名。试一试

Route::controller('account', 'AccountController')
我也不确定
操作
s。如果我理解正确,它们必须以HTTP动词作为前缀,例如

public function getIndex()
而不是

public function action_index()

不是Laravel专家,但我认为您的
Route::controller
缺少路由目的地的参数,您应该使用controller类的全名。试一试

Route::controller('account', 'AccountController')
我也不确定
操作
s。如果我理解正确,它们必须以HTTP动词作为前缀,例如

public function getIndex()
而不是

public function action_index()

将控制器文件的名称更改为:

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.";
    }
}

将控制器文件的名称更改为:

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.";
    }
}

是的,正如您所写,我已经更改了这些内容,但现在它的显示——“ReflectionException.Class AccountController不存在”。是的,正如您所写,我已经更改了这些内容,但现在它的显示——“ReflectionException.Class AccountController不存在”。是的,它正在工作,在我将名称从account.php更改为AccountController.php之后。但我什么都不懂。我尝试了myproject/account/登录它的显示结果页面。但我尝试了我的项目/帐户/登录。它显示“Symfony\Component\HttpKernel\Exception\NotFoundHttpException.Controller method not found.”然后我再次更改了函数名以获取\索引()、获取\登录、获取\注销()。当我转到myproject/account/login时,它会显示结果。那么,当我将字母改为大写时,为什么会显示错误,例如-getIndex、getLogin、getLogout、get_Index、get_login、get_logout?同样/account/login、/account/Index、/account/logout都不起作用。但是/account/login、/account/logout、/account/index起作用。当使用控制器路由时,Laravel 4允许您使用get_login或getLogin,两者都可以通过account/login访问,但不能通过account/login、account/login等访问。。换句话说,区分大小写设置此错误!!!找不到Symfony\Component\Debug\Exception\FatalErrorException类'Base\u Controller'help@SebinSimon检查基本控制器类的名称。在L4中,这将是BaseController,而不是BaseController。最后,如果您的控制器位于不同的名称空间中,则需要相应地更改名称。是的,在我将名称从account.php更改为AccountController.php之后,它正在工作。但我什么都不懂。我尝试了myproject/account/登录它的显示结果页面。但我尝试了我的项目/帐户/登录。它显示“Symfony\Component\HttpKernel\Exception\NotFoundHttpException.Controller method not found.”然后我再次更改了函数名以获取\索引()、获取\登录、获取\注销()。当我转到myproject/account/login时,它会显示结果。那么,当我将字母改为大写时,为什么会显示错误,例如-getIndex、getLogin、getLogout、get_Index、get_login、get_logout?同样/account/login、/account/Index、/account/logout都不起作用。但是/account/login、/account/logout、/account/index起作用。当使用控制器路由时,Laravel 4允许您使用get_login或getLogin,两者都可以通过account/login访问,但不能通过account/login、account/login等访问。。换句话说,区分大小写设置此错误!!!找不到Symfony\Component\Debug\Exception\FatalErrorException类'Base\u Controller'help@SebinSimon检查基本控制器类的名称。在L4中,这将是BaseController,而不是BaseController。最后,如果控制器位于不同的命名空间中,则需要相应地更改名称。