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

※当サイトは、アフィリエイト広告を利用しています
Laravel
スポンサーリンク

今回は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

エンジニアにおすすめ書籍

エンジニアになりたて、これから勉強を深めていきたいという方におすすめの書籍はこちら!

Laravel
シェアする
エンせいをフォローする
スポンサーリンク
タイトルとURLをコピーしました