laravelのrouteヘルパーを利用する絶対URLで出力される。
個人的にはサイト内のリンクは相対URL(ルートパス)で表記したい。
調査
$ php artisan tinker
Psy Shell v0.9.7 (PHP 7.2.9 — cli) by Justin Hileman
>>> route('login')
=> "http://localhost:8000/login"
調べると第3引数で指定できるらしい。
vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
function route($name, $parameters = [], $absolute = true)
{
return app('url')->route($name, $parameters, $absolute);
}
で実行してみる
>>> route('login', null, false)
=> "/login"
ok。解決かなと思うけど、毎回、第2引数にnullセットして第3引数にfalse入れるの辛い。
対応
下記を参考にヘルパーを自作する
Laravel 5へ自作のヘルパー関数を追加するベストプラクティス | 綺麗に死ぬITエンジニア
自作ヘルパーの作成
app/helpers.php
<?php
if (! function_exists('route_path')) {
function route_path($name, $parameters = [])
{
return route($name, $parameters, false);
}
}
オートロードの設定
composer.json
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
},
"files": [
+ "app/helpers.php"
]
},
反映
$ composer dump-autoload
確認
$ php artisan tinker
Psy Shell v0.9.7 (PHP 7.2.9 — cli) by Justin Hileman
>>> route_path('login')
=> "/login"
すっきり