【问题标题】:Create pages without using routes.php in Laravel在 Laravel 中不使用 routes.php 创建页面
【发布时间】:2015-01-03 09:10:31
【问题描述】:

我从版本 3 开始就一直在使用 Laravel,并且还将我创建的每个 URL 路由到 routes.php。但是,我看到一些项目根本不使用 routes.php 但仍然有 URL(当然)。一个例子是Octobercms。所以,我的问题是这怎么可能?我看到零指示按照 Laravel 在他们的文档中声明的方式路由

【问题讨论】:

  • 这个问题有点笼统。您是说“根本没有 routs.php 文件的路由”,还是只是说他们设置的 routs.php 文件与您通常看到的不同?
  • 对不起,是的,我只是在谈论我已经看到一些项目没有传统的方式将 URL 添加到 routes.php。我很想不这样做,因为我觉得这是一个不必要的步骤。从这些项目的外观来看,他们似乎同意

标签: php laravel laravel-4 routes


【解决方案1】:

当您查看传统的 routes.php 时,您会看到很多 Route::get() Route::resource() 等...
这些调用通过Route Facade 注册路由。现在的问题是,您可以在任何地方注册您的路线(Route 必须是可访问的,并且必须足够“早”)

例如,如果您正在开发一个只有一个或两个路由的包,您可能希望在服务提供商的 boot 函数中执行此操作。

但是 Laravel 对 routes.php 所做的事情,它只是将它包含在 require

vendor/laravel/framework/src/Illuminate/Foundation/start.php

$routes = $app['path'].'/routes.php';

if (file_exists($routes)) require $routes;

【讨论】:

  • 是的,我只是想看看我是否可以避免 Route::get() Route::post..那种事情。我一直在为每一页这样做。建立一个电子商务网站。当几乎每个页面都有一个 POST 和一个 GET 时,这会变得非常疯狂
  • 我明白了...您至少需要定义一个路由来捕获所有请求,这可以由Route::any('{slug}', function($slug){ // handle slug }); 完成,然后使用 slug 进行数据库查找,搜索控制器类,不管怎样... 一点旁注:随着即将发布的 Laravel 5 版本,路由将被定义为 in your controller
  • 哦,真的!?甜的!我很高兴你这么告诉我。我即将开始一个需要时间的大型项目。我应该搬到L5吗?我记得从 L3 到 L4 很痛苦。
  • 嗯,我个人对 L5 没有任何经验,但它似乎相当不错;)如果你开始一个需要一些时间的新项目,我会选择第 5 版。我认为最终版本非常接近:)
  • 感谢您提供的信息!是的,我想我会去L5。当它还处于测试阶段时,我就跳到了 L4,再也没有回头。但是,我从不偏离主要文档。这就是我的 routes.php 问题来自的原因。但希望我可以使用新的文件结构,并希望安装包仍然是一样的!再次感谢伙计!
猜你喜欢
  • 2019-01-20
  • 2015-10-30
  • 2017-08-30
  • 1970-01-01
  • 2016-06-20
  • 2019-02-07
  • 2021-03-15
  • 2014-01-05
  • 2021-02-07
相关资源
最近更新 更多