Laravel 5包router.php被忽略

时间:2015-02-12 20:53:06

标签: php laravel laravel-5

我已经关注了有关服务提供商的Laravel文档,我正在尝试创建自己的包/模块。

我的包的router.php文件被完全忽略了,但是我可以用启动和注册函数来编写dd():

abstract class ServiceProvider extends \Illuminate\Support\ServiceProvider
{

    public function boot()
    {
        if ($module = $this->getModule(func_get_args())) {
            include __DIR__.'/'.$module.'/routes.php';
        }
        $this->loadViewsFrom(__DIR__.'/'.$module.'/Views', 'core');
    }

    public function register()
    {
        if ($module = $this->getModule(func_get_args())) {

        }
    }

    public function getModule($args)
    {
        $module = (isset($args[0]) and is_string($args[0])) ? $args[0] : null;

        return $module;
    }

}

在我的app / Modules / Core / router.php中:

Route::get('/test', function(){
    return 'hello';
});

我只是找不到页面错误(不是Laravel错误)。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

根据你在这里说的话

  

我只是找不到页面错误(不是Laravel错误)。

听起来您没有正确设置Web服务器。即此错误发生在高于(或低于,取决于您的观点)Laravel的水平。

尝试从

加载路线
http://example.com/index.php/home

你可能会发现Laravel对该页面的反应很好。

像Laravel这样的PHP框架通常会将所有流量定向到单个index.php - 有时这个文件称为前端控制器,有时称为前端加载器,有时也称为索引引导程序。它有无数的名字。通过将所有流量引导到这个文件,框架可以实现自己的控制器分派逻辑。

如果您看到 Web服务器错误页面而非Laravel网页,则可能意味着

  1. 您错过了.htaccess

  2. 中的public/文件
  3. 您的网络服务器已配置为忽略.htaccess个文件

  4. 您的网络服务器没有安装或启用MOD_REWRITE模块

  5. 上述

  6. 的某些组合

    MOD_REWRITE模块是允许.htaccess文件说出的apache模块

      

    嘿,您提出的所有请求 - 不要为文件提供服务,请转到index.php

    其他Web服务器(如nginx)具有不同的模块用于相同目的。如果是那样,请查阅您的文档。