LaravelでURLを生成する「url()」について

Knowledge Knowledge Knowledge

今回はLaravelでURLを生成する際にしようする「url()」についての記事です。

url生成には他にroute関数がありますが今回は「url()」でのURL生成についてまとめてみました。

多くはルーティングで名前付きルートを作成してURLを呼び出すことが多いのですが、URLを直接指定した場合がありこういう時どうするんだと思ったのでここで軽くまとめておきたいと思います。

「url()」でURLを取得・生成する

まずは「url()」でドメインを取得する方法です。

これはシンプルに以下で実現できます。

echo url('')

// https://test.com

url()」の引数に空文字を入れることでドメインを取得できます。

続いてドメイン以下のページのURLを取得・生成する場合です。

echo url('post')

// https://test.com/post

$post = Post::find(1);
echo url('post/{$post->id}');

// https://test.com/post/1

このように引数に入れることで、ドメイン配下のパスを取得できるようになっています。

現在のURLに関する情報を取得・生成する

続いては「url()」に引数を指定しない場合です。

引数を指定しないと、「Illuminate\Routing\UrlGenerator」インスタンスというものが返されるらしいです。

そのインスタンスに用意されているメソッドによって取得できるURLがあります。

それがこちら。

url()->current()
現在のURLを取得。クエリがある場合もクエリは除かれる。

url()->full()
現在のURLでクエリも含むURLを取得。

url()->previous()
直前のリクエストの完全なURLを取得。

例えば、「https://test.com/search」というページから
https:/test.com/search/result?s=aaa」というページに遷移した場合、それぞれの生成されるURLは以下になります。

echo url()->current();
// https:/test.com/search/result

echo url()->full();
// https:/test.com/search/result?s=aaa

echo url()->previous();
// https://test.com/search

用途によって使い分けが必要です。

参考:
https://readouble.com/laravel/8.x/ja/urls.html#the-basics

お問い合わせ

業務効率化や業務フローにお悩みの方はぜひお気軽にご相談ください。
弊社ではどこに課題があるのかから一緒になって考え、解決策を提案いたします。

    お名前

    必須

    メールアドレス

    必須

    電話番号

    必須

    お問い合わせ内容

    必須

    同じカテゴリーの新着記事

    カテゴリー情報が取得できませんでした。