產生url的功能是任何一個框架都必須具備的功能,laravel提供了幾個方法來產生URL。下面一起來看看。
輔助函數url
輔助函數url可以產生任意的url,若沒有給定域名,則預設使用本系統的域名。
echo url('http://baidu.com'); //http://baidu.com echo url('/users/get/3'); // http://localhost:8000/user/get/3
取得目前URL
#取得目前url有許多方法,除此之外還可以取得上一頁的位址。但這些方法之間有些差異。
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框架》
以上是laravel產生及取得不同類型的URL位址總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!