【Laravel】Laravel5.7のヘルパーを一気に勉強(13) – URL




この記事は最終更新日から2年以上経過しています。

Laravel5.7のURLに関するヘルパーです。

action()

指定したコントローラーのアクションに対応するURLを生成します。
1つのパラメーターでコントローラーとアクションを指定する場合のコントローラー名はApp\Controller\以降の相対パス、2つのパラメーターで指定する場合のコントローラー名は絶対パスとなります。

>>> action('Demo\HelperController@url')
=> "http://localhost/demo/helper/url"
>>> action([\App\Http\Controllers\Test01Controller::class, 'test01'])
=> "http://localhost/test01"

asset()

config.app.phpのasset_urlに設定されているURLをベースにしたURLを生成します。
未設定の場合はurlに設定されているURLをベースとします。

// 'asset_url' => env('ASSET_URL', 'http://asset.localhost')の場合
>>> asset('img/test.png')
=> "http://asset.localhost/img/test.png"
>>> asset('js/test.js')
=> "http://asset.localhost/js/test.js"

secure_asset()

config.app.phpのasset_urlが設定されている場合、設定値を返します。
このときhttpの場合はhttpsには変換せず、httpのまま返します。

// 設定が'url' => env('APP_URL', 'http://localhost'),
// 'asset_url' => env('ASSET_URL', 'http://asset.localhost'),の場合
>>> asset('img/test.png')
=> "http://asset.localhost/img/test.png"
>>> asset('js/test.js')
=> "http://asset.localhost/js/test.js"
>>> secure_asset('img/test.png')
=> "http://asset.localhost/img/test.png"
>>> secure_asset('js/test.js')
=> "http://asset.localhost/js/test.js"

config.app.phpのasset_urlが未設定の場合、urlに設定されているURLをhttpsとして返します。

// 設定が'url' => env('APP_URL', 'http://localhost'),
// 'asset_url' => env('ASSET_URL', ''),の場合
>>> asset('img/test.png')
=> "http://localhost/img/test.png"
>>> asset('js/test.js')
=> "http://localhost/js/test.js"
>>> secure_asset('img/test.png')
=> "https://localhost/img/test.png"
>>> secure_asset('js/test.js')
=> "https://localhost/js/test.js"

route()

名前付きルートのURLを生成します。
第二引数でパラメータを設定できます。
第三パラメータにfalseを指定すると相対パスとなります。

>>> route('demo.helper.url');
=> "http://localhost/demo/helper/url"
>>> route('demo.helper.url', ['id' => 1]);
=> "http://localhost/demo/helper/url?id=1"
>>> route('demo.helper.url', ['id' => 1], false);
=> "/demo/helper/url?id=1"

secure_url()

config/app.phpに設定されているurlをhttpsとして返します。

>>> secure_url('/')
=> "https://localhost"
>>> secure_url('test/test.php')
=> "https://localhost/test/test.php"

url()

config/app.phpに設定されているurlを返します。
引数を指定しない場合、Illuminate\Routing\UrlGeneratorインスタンスを返します。

>>> url('/')
=> "http://localhost"
>>> url('test/test.php')
=> "http://localhost/test/test.php"
>>> url()
=> Illuminate\Routing\UrlGenerator {#184}