相信很多網頁開發者都會處理到麵包屑、上一下、下一頁等相關URL的操作,過往大家會用組字串的方式產生URL,在Laravel 框架中提供不少方便的URL函式供開發者使用,但由於內建函式眾多,我只提供日常比較常用的函式供你參考,我也順便紀錄下來當作備忘錄,也希望藉由此次分享讓初學者能更快掌握相關語法。
Table of Contents
current、full、previous:
讓你存取目前 URL 的資訊
// 取得目前URL,不帶query string
echo url()->current();
// 取得目前URL,包含query string
echo url()->full();
// 取得上一個請求的完整URL
echo url()->previous();
這些方法也可以通過 URL Facade 來存取:
use Illuminate\Support\Facades\URL;
echo URL::current();
to:
to 方法會產生帶著https的url的網址,第三個參數為bool true為https url,false為http url。
URL::to('foo/bar', $parameters, $secure);
ex
URL::to('another/route', array('foo', 'bar'), true);
action:
透過Controller裡的method產生URL(注意Route不要指定別名,否則會出現錯誤!)
URL::action('NewsController@item', ['id'=>123]);
URL::action('Auth\AuthController@logout');
URL::action('FooController@method', $parameters, $absolute);
route:
當您已為路由命名時才使用 Url::route,如果沒有建議使用URL::to
#在web.php中定義
Route::get('/account/register', [
'name' => 'register',
'uses' => 'RegisterController@create'
]);
#html中可以使用URL::route來呼叫
<a href="{{ URL::route('register') }}" >Register 1</a>
secure:
產生帶著https的url的網址
URL::secure('foo/bar', $parameters);
URL::secure('another/route', array('foo', 'bar'));
URL::secure('another/route');
asset:
載入專案內的css與js檔案,第二個參數如果設定為true則強制使用https
URL::asset('css/foo.css', $secure);
#也可以用secureAsset,預設url為https
URL::secureAsset('css/foo.css')
<!-- 載入站內的資源檔案 -->
<link rel="stylesheet" href="{{ URL::asset('css/bootstrap.css') }}">
<script type="text/javascript" src="{{ URL::asset('js/jquery.min.js') }}"></script>
<!-- 如果是要載入站外的資源檔案可以用 -->
<script type="text/javascript" src="{{ URL::asset('//code.angularjs.org/1.2.13/angular.js') }}"></script>
isValidUrl:
判斷該網站是否為有效的URL
URL::isValidUrl('http://example.com');
路徑相關函式:
1、base_path() #返回專案根目錄的絕對路徑
2、app_path() #返回專案app目錄下的絕對路徑
3、storage_path() #返回專案storage目錄下的絕對路徑
4、config_path() #返回專案config目錄下的絕對路徑
5、public_path() #返回專案public目錄下的絕對路徑
6、database_path() #返回專案database資料庫目錄下的絕對路徑
Reference
- 官方網站-URLs:https://laravel.com/docs/8.x/urls
你好,我是RD爸,希望透過我的紀錄,可以帶給你一些新的想法~ 專注於各式3C產品的開箱評測、程式相關技術及理財筆記。
email ►[email protected]