laravel生成及獲取不同類型的URL地址總結

生成url的功能是任何一個框架都必須具備的功能,laravel提供了幾個方法來生成url。下面一起來看看。

輔助函數url

輔助函數url可以生成任意的url,若沒有給定域名,則默認使用本系統(tǒng)的域名。

echo?url('http://baidu.com');??//http://baidu.com echo?url('/users/get/3');??//?http://localhost:8000/user/get/3

獲取當前URL

獲取當前url有許多方法,除此之外還可以獲取上一頁的地址。但這些方法之間有些區(qū)別。

echo?url()->current();? echo?url()->full(); echo?url()->previous();

如果當前的URL地址為http://www.example.com/news/1?a=b&c=d,

current這個方法可以獲取當前的url(),但是它獲取不到查詢字符串(即?a=b&c=d),而full則可以獲取完整的路徑。

除了上述的幾個方法外,還可以通過laravel的響應來獲取當前URL地址。

  • $request->path() 該方法只能獲取到當前請求的路徑,獲取不到域名及查詢字符串

  • $request->url() 該方法和url()->current()用法一致,也是獲取不到查詢字符串

  • $request->fullUrl() 該方法和url()->full()效果一樣,能夠獲得完整的URL地址。

路由命名的URL

我們經常會給一個路由設置一個名稱,設置完后,就可以通過這個名稱去獲取該路由的URL地址。下面給出演示代碼:

先給一個路由設置一個名稱,代碼如下:

Route::get('/news',?function?() { })->name('news');

然后就可以獲取到該路由的url地址:

echo?route('news');

若該路由有參數的話,則可以通過route的第二個參數來設置路由參數。演示代碼如下:

Route::get('/news/page/{page}/page_num/{pageNum}',?function?() {  })->name('news');

設置url的代碼如下:

echo?route('news',?['page'?=>?1,?'page_num'?=>?15]);

控制器的URL

控制器的URL地址也是項目中經常會用到了。對于控制器的URL,則通過action函數來獲取到。下面是演示代碼:

$url?=?action('IndexController@index');

如果控制器的方法需要路由參數,則可以通過action的第二個參數來傳遞。演示代碼如下所示:

$url?=?action('IndexController@index',?['id'?=>?1]);

推薦:《laravel框架

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享