在Laravel 4中,我能够使用...获取当前路线名称
Route::currentRouteName()
Run Code Online (Sandbox Code Playgroud)
我怎么能在Laravel 5中做到这一点?
在我的第一个Laravel 5项目上工作,不确定在我的应用程序中强制使用HTTPS的逻辑位置和方式.这里的关键是有许多域指向应用程序,只有三分之二使用SSL(第三个是后备域,长篇故事).所以我想在我的应用程序逻辑而不是.htaccess中处理这个问题.
在Laravel 4.2中,我使用此代码完成了重定向,位于filters.php:
App::before(function($request)
{
if( ! Request::secure())
{
return Redirect::secure(Request::path());
}
});
Run Code Online (Sandbox Code Playgroud)
我认为中间件应该在这样的地方实现,但我不能完全理解这一点.
谢谢!
UPDATE
如果您像我一样使用Cloudflare,可以通过在控制面板中添加新的页面规则来实现.
我需要删除 index.php或public/index.php从Laravel生成的URL; 通常的道路是localhost/public/index.php/someWordForRoute,应该是这样的localhost/someWordForRoute.
的.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes.
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php[L]
Run Code Online (Sandbox Code Playgroud)
应用程序/配置/ app.php
'url' => 'http://localhost',
Run Code Online (Sandbox Code Playgroud)
我怎么能改变呢?
我是Laravel的新手.为了尝试保持我的应用程序井井有条,我想将我的控制器放入控制器文件夹的子文件夹中.
controllers\
---- folder1
---- folder2
Run Code Online (Sandbox Code Playgroud)
我试图路由到控制器,但laravel找不到它.
Route::get('/product/dashboard', 'folder1.MakeDashboardController@showDashboard');
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我刚刚开始学习Laravel框架,我遇到了路由问题.
唯一有效的路线是开箱即用的Laravel附加的默认本地路由.
我在Windows上使用WAMP,它使用PHP 5.4.3和Apache 2.2.22,我也启用了mod_rewrite,并从application.php配置文件中删除了'index.php'以留下空字符串.
我创建了一个名为User的新控制器:
class User_Controller extends Base_Controller {
public $restful = true;
public function get_index()
{
return View::make('user.index');
}
}
Run Code Online (Sandbox Code Playgroud)
我在application/views/user /中创建了一个视图文件,名为index.php,带有一些基本的HTML代码,在routes.php中我添加了以下内容:
Route::get('/', function () {
return View::make('home.index');
});
Route::get('user', function () {
return View::make('user.index');
});
Run Code Online (Sandbox Code Playgroud)
http://localhost/mysite/public在我的Web浏览器中访问root()时,第一条路径工作正常,但是当我尝试转到第二条路径时,http://localhost/mysite/public/user我收到404 Not Found错误.为什么会这样?
我想将我的应用程序分成模块.例如,会有一个"核心"模块,其中包含基本登录功能,应用程序布局/格式(CSS等),用户管理和日记.
稍后我可以创建其他模块,如联系人管理器,可以轻松地从应用程序中添加或删除.
应用程序导航中会有一些逻辑用于确定存在哪些模块以及显示/隐藏指向它们的链接.
我如何在目录结构,命名空间和其他任何需要的方面做到这一点?
我正在看creolab/laravel-modules,但是它说它适用于Laravel 4.我还能以完全相同的方式使用它吗?
文档说在每个模块目录中放置模型,控制器和视图,但这如何与路由一起使用?理想情况下,我希望每个模块都有自己的routes.php文件.如何将所有的东西这项工作http和resources目录?
我在考虑这样的事情:

但我不知道如何让它发挥作用.
我刚刚在这里尝试了教程:
http://creolab.hr/2013/05/modules-in-laravel-4/
没有额外的库等,只需要纯粹的Laravel 5.
我似乎碰到了一堵砖墙,上面写着错误信息:
FatalErrorException in ServiceProvider.php line 16:
Call to undefined method Illuminate\Config\Repository::package()
Run Code Online (Sandbox Code Playgroud)
关于以下内容:
<?php namespace App\Modules;
abstract class ServiceProvider extends \Illuminate\Support\ServiceProvider
{
public function boot()
{
if ($module = $this->getModule(func_get_args())) {
$this->package('app/' . $module, $module, app_path() . '/modules/' . $module);
}
}
public function register()
{
if ($module = $this->getModule(func_get_args())) {
$this->app['config']->package('app/' . $module, app_path() . '/modules/' . $module . '/config');
// Add routes …Run Code Online (Sandbox Code Playgroud) 我希望找到一种方法来创建一个带有Laravel 4中注册路径路径的数组.
从本质上讲,我希望得到一个像这样返回的列表:
/
/login
/join
/password
Run Code Online (Sandbox Code Playgroud)
我确实遇到过一个方法Route::getRoutes(),它返回一个带有路由信息和资源的对象,但路径信息受到保护,我无法直接访问这些信息.
有没有其他方法来实现这一目标?也许是另一种方法?
在Laravel应用程序中,我正在尝试在视图内部实现一个按钮,允许用户下载文件而无需导航到任何其他视图或路径现在我有两个问题:(1)下面的函数抛出
The file "/public/download/info.pdf" does not exist
Run Code Online (Sandbox Code Playgroud)
(2)下载按钮不应该将用户导航到任何地方而只是在同一视图下载文件,我当前的设置,将视图路由到'/ download'
以下是我试图实现的方法:
按钮:
<a href="/download" class="btn btn-large pull-right"><i class="icon-download-alt"> </i> Download Brochure </a>
Run Code Online (Sandbox Code Playgroud)
路线:
Route::get('/download', 'HomeController@getDownload');
Run Code Online (Sandbox Code Playgroud)
控制器:
public function getDownload(){
//PDF file is stored under project/public/download/info.pdf
$file="./download/info.pdf";
return Response::download($file);
}
Run Code Online (Sandbox Code Playgroud) 我使用Composer安装了Laravel 4并设置了虚拟主机.目前,只有根路由正在工作:
<?php
Route::get('/', function()
{
return View::make('hello');
});
Run Code Online (Sandbox Code Playgroud)
这不是:
Route::get('/hello', function()
{
return View::make('hello');
});
Run Code Online (Sandbox Code Playgroud)
我试图打是TasksController在/tasks:
Route::resource('tasks', 'TasksController');
Run Code Online (Sandbox Code Playgroud)
这也给了我404错误.我能做错什么?我在项目的根目录下有一个默认的.htaccess文件:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我在Mac上使用localhost.
routing http-status-code-404 laravel laravel-4 laravel-routing
是否可以将中间件添加到资源丰富路由的所有或部分项目中?
例如...
<?php
Route::resource('quotes', 'QuotesController');
Run Code Online (Sandbox Code Playgroud)
此外,如果可能的话,我想将所有路由放在一边index并show使用auth中间件.或者这是否需要在控制器内完成?