【问题标题】:Laravel 4 Routing (controller not found)Laravel 4 路由(找不到控制器)
【发布时间】:2013-06-23 00:39:28
【问题描述】:

请帮助,我正在使用 Laravel4,但由于某种原因,我无法让它在家里的 mac 上工作,我在工作时使用 mac 没有问题,要么我遗漏了一些明显的东西,要么我的 mac 设置不同.

我遇到的问题是,如果我尝试使用测试控制器,我只能让 HomeController 工作,但找不到控制器方法。 whooops 错误给出了 Controller Method Not Found

REDIRECT_URL    /test
GATEWAY_INTERFACE   CGI/1.1
SERVER_PROTOCOL     HTTP/1.1
REQUEST_METHOD  GET
QUERY_STRING    
REQUEST_URI     /test
SCRIPT_NAME     /index.php
PATH_INFO   /test
PATH_TRANSLATED     redirect

我的路线

Route::controller('test', 'TestController');

和我的测试控制器

class TestController extends BaseController {

    public function getIndex()
    {
       return View::make('test.index');
    }

}

我的 htaccess

<IfModule mod_rewrite.c> 
RewriteEngine on 
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

启用重写

我错过了显而易见的事情吗?

感谢您的帮助

【问题讨论】:

  • 你在输入php artisan routes时看到路线了吗?
  • 感谢您的回复,这就是我得到的 |获取 /test/index/{v1}/{v2}/{v3}/{v4}/{v5} | |测试控制器@getIndex | | | | |获取/测试 | |测试控制器@getIndex | | | | |获取 /test/{_missing} | |测试控制器@missingMethod |
  • 我的本地开发环境也有类似的情况。您可能需要更新 Apache httpd.conf 文件。我会在几分钟内写一个答案。
  • 不客气,希望能解决您的问题。

标签: laravel laravel-4


【解决方案1】:

我在本地开发环境中也遇到过类似的情况。部署在我的远程服务器上的 Laravel 4 应用程序运行良好,但是我无法让它在我的本地机器上运行。问题是只能访问应用程序的根文件夹(/public - Home Controller),而我的所有路由都不起作用。

问题出在 Apache 的配置中,它不允许加载 .htaccess 文件。我的解决方案是为我的站点路径定义一个新的 Directory 语句,如下所示:

<Directory "/path/to/your/sites">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

您可以将其插入httpd.conf 或任何正在加载的配置文件中。如果该路径已经有定义,您应该相应地更新它。在我的例子中,我将上面的代码与虚拟主机定义一起添加到了我的 httpd-vhosts.conf 文件中:

<VirtualHost *:80>
    ServerAdmin your@email.com
    DocumentRoot "/path/to/your/sites/laravel/public"
    ServerName laravel.dev
    ServerAlias www.laravel.dev
</VirtualHost>

最后将此行添加到您的/etc/hosts

127.0.0.1   laravel.dev

通过这种方式,你可以通过这个 URI 访问你的本地环境:http://laravel.dev

【讨论】:

  • 好的,如果有帮助,请告诉我。
  • 在您的帮助下完成了工作,但需要一些更改我收到 500 错误 DocumentRoot "/Users/me/Sites/mysite/public" 选项索引 FollowSymLinks MultiViews AllowOverride All ServerName mysite.dev 非常感谢我已经尝试评论但我说我没有足够的声誉我需要一个分数共 15 人,不过我非常满意
  • 当然。我很高兴它得到了解决。如果您认为我的回答回答了您的问题,请选择它作为正确答案。你也会获得积分。
  • 感谢我现在享有 17 的声誉,因此投票赞成 1 非常感谢您
猜你喜欢
  • 2013-03-13
  • 2013-10-05
  • 1970-01-01
  • 2016-11-19
  • 1970-01-01
  • 2014-03-18
  • 1970-01-01
  • 2014-12-14
  • 2013-05-19
相关资源
最近更新 更多