久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何修改Laravel中url()函數(shù)生成URL的根地址

這篇文章主要給大家介紹了關(guān)于如何修改Laravel中url()函數(shù)生成URL根地址的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友

前言

本文主要給大家介紹了修改Laravel中url()函數(shù)生成URL的根地址的相關(guān)內(nèi)容,相信大家都曉得 Larevel 的一票幫助函數(shù)中有個(gè) url(),可以通過(guò)給予的目錄生成完整的 URL,是非常方便的一個(gè)函數(shù):

// return: https://skin.dev/user/profile
url('user/profile')

但是這玩意生成的 URL 中要補(bǔ)完的部分是框架內(nèi)部根據(jù) Request 自動(dòng)判斷的,而自動(dòng)判斷出的東西有時(shí)候會(huì)出錯(cuò)(譬如在套了一層反向代理之類(lèi)的情況下)。

文檔上并沒(méi)有提到我們要如何才能自定義它生成的 URL 中的根地址和協(xié)議頭部分(http(s)),這就非常吃癟了。那我們要咋辦呢?

首先我們來(lái)看看 url() 被定義的位置:

# File: src/Illuminate/Foundation/helpers.php

/**
 * Generate a url for the application.
 *
 * @param string $path
 * @param mixed $parameters
 * @param bool $secure
 * @return Illuminate\Contracts\Routing\UrlGenerator|string
 */
function url($path = null, $parameters = [], $secure = null)
{
 if (is_null($path)) {
  return app(UrlGenerator::class);
 }

 return app(UrlGenerator::class)->to($path, $parameters, $secure);
}

可以看到,它從 Laravel 的服務(wù)容器中解析出了一個(gè) Illuminate\Contracts\Routing\UrlGenerator,并且把參數(shù)轉(zhuǎn)交給了這個(gè)對(duì)象的 to 方法。

而這個(gè) UrlGenerator 類(lèi)是在 src/Illuminate/Routing/RoutingServiceProvider.php 這個(gè)服務(wù)提供者中被綁定到服務(wù)容器上去的:

/**
 * Register the URL generator service.
 *
 * @return void
 */
protected function registerUrlGenerator()
{
 $this->app['url'] = $this->app->share(function ($app) {
  // 略

  $url = new UrlGenerator(
   $routes, $app->rebinding(
    'request', $this->requestRebinder()
   )
  );

  return $url;
 });
}

這也就意味著我們可以隨時(shí)通過(guò) url 這個(gè) abstract 來(lái)訪(fǎng)問(wèn)服務(wù)容器中的這個(gè) UrlGenerator,并且修改它。

而且它也確實(shí)暴露了我們需要的方法:forceSchema 和 forceRootUrl。

修改 url() 函數(shù)生成的 URL 中的根地址的代碼如下:

// 用它提供的方法檢測(cè) URL 是否有效
if (app('url')->isValidUrl($rootUrl)) {
 app('url')->forceRootUrl($rootUrl);
}

// 強(qiáng)制生成使用 HTTPS 協(xié)議的 URL
app('url')->forceSchema('https');

上面那些代碼推薦放在自定義的 ServiceProvider,這樣之后所有的 url() 函數(shù)生成的鏈接都會(huì)使用上面定義的根地址和協(xié)議了。

所以說(shuō)啊,要真正掌握 Laravel 的那些東西,光看文檔還是不夠的。而且 Laravel 的源碼文檔做的很不錯(cuò),讀起來(lái)很清晰,能學(xué)到不少東西。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)的支持。

【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

下面小編就為大家分享一篇laravel ORM 只開(kāi)啟created_at的幾種方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
這篇文章主要給大家介紹了如何通過(guò)源碼解析Laravel的依賴(lài)注入的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著
這篇文章主要給大家介紹了關(guān)于Laravel中unique和exists驗(yàn)證規(guī)則的優(yōu)化的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面
最近在使用laravel5.5,利用其實(shí)現(xiàn)了一個(gè)功能,下面分享給大家,這篇文章主要給大家介紹了關(guān)于Laravel 5.5基于內(nèi)置的Auth模塊如何實(shí)現(xiàn)前后臺(tái)登陸的相關(guān)資料,文中通過(guò)示例代碼介紹的非
laravel 的隊(duì)列服務(wù)對(duì)各種不同的后臺(tái)隊(duì)列服務(wù)提供了統(tǒng)一的 API,下面這篇文章通過(guò)源碼分析給大家介紹了關(guān)于 Laravel 重復(fù)執(zhí)行同一個(gè)隊(duì)列任務(wù)的原因,文中通過(guò)示例代碼介紹的非常詳細(xì)
這篇文章主要給大家介紹了關(guān)于 Laravel Redis 多個(gè)進(jìn)程同時(shí)取隊(duì)列問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友下面來(lái)
主站蜘蛛池模板: 深夜爽视频| 国产高清一区二区 | 综合久| 久久一区二区视频 | 蜜臀网 | 国产福利久久 | 欧美日韩在线一区二区三区 | 国产精品高潮呻吟久久 | h视频在线观看免费 | 久久99精品久久久久婷婷 | 国产精品亚洲一区二区三区在线 | 亚洲国产aⅴ精品 | 精品亚洲91 | 久久久国产一区二区三区 | 中文字幕在线看人 | 99资源 | 日本亚洲一区 | av网站免费观看 | 粉嫩国产精品一区二区在线观看 | 久久久国产一区二区三区 | 在线观看av网站永久 | 精品欧美一区二区精品久久久 | 国产91观看 | 成人高潮片免费视频欧美 | 亚洲综合天堂网 | 久久久久亚洲精品 | 亚洲人成人一区二区在线观看 | 秋霞a级毛片在线看 | 日韩有码一区 | 久www| 国产精品呻吟久久av凹凸 | 精品国产第一区二区三区 | 黑人性hd| 逼逼网| 91最新视频 | 91国内精品| 祝你幸福电影在线观看 | 婷婷毛片| 日日夜夜草 | 噜噜噜噜狠狠狠7777视频 | 妖精视频一区二区三区 |