laravel控制器不起作用

时间:2013-04-05 14:12:29

标签: php laravel laravel-routing

1。我正在跟踪CodeHappy: Using Controllers学习使用laravel控制器,在我的PC “myproject /”指向“wamp / www / laravel / public”文件夹,当我尝试“myproject / account / login”时,浏览器显示:


未找到

在此服务器上找不到请求的网址/帐户/登录信息。

<小时/>

2。显然,浏览器试图找到“帐户”文件夹而不是使用控制器,我在“公共”下创建了“帐户”文件夹并再次尝试,我的猜测被证明是正确的。我应该在使用控制器前配置任何地方

我的代码:

应用/控制器/ account.php

<?php
class Account_Controller extends Base_Controller
{
    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.";
    }
}

/application/routes.php

    Route::get('/', function()
    {
        return View::make('home.index');
    });
    Route::controller('account');

1 个答案:

答案 0 :(得分:1)

@Phill Sparks完全正确(理所当然!他已经使用Laravel多年了)。如果您的浏览器从服务器报告404,除非您完全删除了404事件,否则该请求甚至不会通过Laravel。

试试/index.php/account/login。如果它工作,你知道你的重写规则是拙劣的。如果它也不起作用,那么你手头有一个更严重的问题。

如果您使用的是Apache,则应在htaccess文件中找到Laravel的重写规则。如果你不能通过htaccess加载mod_rewrite,你需要将它们迁移到你的服务器配置。

如果您使用的是nginx,则在server块中需要与此类似的内容:

    location / {
            try_files $uri $uri/ @laravel;
    }
    location @laravelDesktop {
            rewrite ^/(.*)$ /index.php?/$1 last;
    }

或者如果在子目录中

    location /my/subdir/ {
            try_files $uri $uri/ @laravel;
    }
    location @laravel {
            rewrite ^/my/subdir/(.*)$ /index.php?/$1 last;
    }