在 Laravel 路由上设置协议
Posted
技术标签:
【中文标题】在 Laravel 路由上设置协议【英文标题】:Set the protocol on a Laravel route 【发布时间】:2016-10-09 22:43:59 【问题描述】:我在网站上有一条通往 webcal 资源的路由,因此我们希望在 Blade 模板中使用 URL::route('calendar')
时使用 webcal://
生成 URL。
我尝试添加一个协议选项,但是这被忽略了,所以我想一定有其他方法吗?
Route::get('/calendar.ics',
[
'as' => 'calendar',
'uses' => 'EntityController@calendar',
'protocol' => 'webcal'
]
);
欢迎提出建议!
【问题讨论】:
你确定protocol
是一个可以接受的数组键吗?
@haakym 似乎没有任何影响 - 没有错误,但协议仍然是 http。我只是猜到了这个参数,因为它看起来很合乎逻辑,但找不到任何支持它的文档。
尝试为自己的方法扩展刀片:laravel.com/docs/master/blade#extending-blade。看看当前的route()
helper 是如何工作的:github.com/laravel/framework/blob/5.2/src/Illuminate/Foundation/… 然后你可以创建一个webCalRoute()
方法吗?
【参考方案1】:
webcal
URI 不是官方协议。 webcal://
实际上将作为http://
交给另一个应用程序。
按照建议,您可以为此做自己的助手,也可以在视图中编写普通的实际 URI。
您也可以使用Content-Type: text/calendar
标头,但我想它不会在另一个应用程序中打开。
【讨论】:
以上是关于在 Laravel 路由上设置协议的主要内容,如果未能解决你的问题,请参考以下文章