【Laravel】アンダースコア2つの意味。__()の記述は何をしているのか?使い方を実例で解説

laravel-prograshi(プロぐらし) Laravel
記事内に広告が含まれていることがあります。

Laravelの__( )の処理内容について。

▼こういうの

@if(__('career.'. $career_slug .'.is_recruiting') === "false")
  //処理
@endif
@include('partials.jumbotron', ['title' => __('page.recruit.career.'. $career_slug .'.title')])


__()の意味

  • __ヘルパ関数と呼ぶ。
  • Lang::getの省略形。

現在設定中の言語ファイルから、指定したデータを呼び出すときに使用する。


現在設定中の言語

config > app.php の中の localeを参照。

日本語の場合は以下のようになっている。

 'locale' => 'ja',


言語ファイルの場所

resources > lang配下。

enはデフォルトでプロジェクトを作成した状態。
jaが後から追加したもの。


__()の使い方

例えば、言語設定が'locale' => 'ja'のときに使うと、jaディレクトリの指定したファイルのデータを取得する。

__('ファイル名')
ファイルの中のデータをごっそり取得

__('ファイル名.プロパティ名')
指定したプロパティのデータを取得


実例

@php
  $career_slug = 'editor' 
@endphp

@if(__('career.'. $career_slug .'.is_recruiting') === "false")
  //処理
@endif

上記処理を確認すると、

__('career.'. $career_slug .'.is_recruiting')`

carrer.phpの、editorプロパティ($career_slug)の、is_recruitingプロパティの値を取得している。

<?php

return [
    'editor' => [
        'is_recruiting' => 'false',
        'position' => "編集",
        'job_description' => "ライティング業務です"
    ],
];

つまり、取得したデータはfalseとなる。

@if(__('career.'. $career_slug .'.is_recruiting') === "false")

@ifの条件式がtrueになるので処理が実行される。

参考

Laravel公式 ヘルパ関数一覧

タイトルとURLをコピーしました