4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LaravelでURLを取得する方法いろいろ【初心者向け】

Posted at

背景

最近Laravelで開発をすることが多いのですが、レビューでURLを直書きしないように複数回指摘を受けました。
そしてその修正をする中で学んだURLの取得方法を紹介します。

サイト内のURLを取得したい

Laravelで定義したルートにはnameメソッドで名前をつけることができます。

// 名前付きルート
Route::get('/user/profile', function () {
    
})->name('profile');

routeメソッドを使えばURLを以下のように生成することができ、とても便利です。

<a href="{{ route('profile') }}">プロフィールへ</a>

URL直書きで書いても動作自体は変わりませんが、URLのパスを修正したい時に一つ一つ変更する必要がありとても手間がかかります。名前付きルートであれば変更箇所が1つになって楽ですよね。

外部サイトのURLを取得したい

外部のページに飛ばしたい時は、基本的にURL直書きで問題無いと思います。

<a href="https://qiita.com/">Qiitaトップページへ</a>

ただ、複数回同じURLを使う場合はLaravelヘルパー関数を自作して外部のURLを返すメソッドを作成しましょう。

こういう細かい共通化が後々の自分を楽にしてくれます!

URLを加工して取得したい

URLを加工して取得する際に便利なのがPHPのpathinfoメソッドです。

pathinfoの使い方

<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
?>

pathinfoメソッドは引数に指定したURLパスを加工した結果を連想配列で受け取ることができます。

  • dirname: ディレクトリのパス
  • basename: ファイル名と拡張子
  • extension: 拡張子
  • filename: ファイル名

上記の4つの要素を全て返すので、必要な要素を指定して使用します。

※日本語などの文字が含まれる場合は文字化けを起こす可能性があるのでsetlocaleでロケール情報を指定する必要があります。

まとめ

ここまでLaravelでURLを取得する方法を紹介してきました。いかがだったでしょうか?

この記事がLaravelの理解の手助けになれば幸いです!

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?