Laravelを使ってみよう-10 {{ __(”)}}と{{ session(‘status’) }}がわからない

2022年11月12日

まだ理解できない部分があるのか

ちょっとしばらく仕事が立て込んでいたので止まってました。

あらためて思い出しながら日報システムを作っていきたいと思います。実際に仕事するってなった時に絶対忘れてますねこれ。自信がさっぱりないです。備忘録残してて大正解だと思ってます。

laravelのインストールなどは一旦置いといてbladeファイルの仕組みを復習していたのですが、まだわからないものがありますね。理解すれば作業性高いんでしょうけど、現状は逆にややこしいんではないかとイライラするレベルです。

とりあえずページ構成を考えた

トップページはhome.bladeになるようにweb.phpで修正、ログインしていない場合は右上のメニューにログインか新規ユーザー登録できるように、ログインしている場合は日報の一覧とユーザーの一覧が表示できるようにします。

それぞれで入力・編集・削除ができるように。これでひととおりデータベースの操作もできるようになるのではないかと思います。

現在のホーム画面、ここのDashboardの部分を自分の好きなものに変更していこうと思います。

そこでbladeファイルを変更しようと確認したところ…

<div class="card-body">
	@if (session('status'))
		<div class="alert alert-success" role="alert">
			{{ session('status') }}
		</div>
	@endif
	
	{{ __('You are logged in!') }}
</div>

なにこれ…session(('status'))何らかの現在の状態を出す指示なんでしょうけど、現状何も出ていないし、{{ __('You are logged in!') }}に至っては中のテキストがそのまま出てきてるだけだし。

スポンサーリンク

with(‘status’,”)でセッションデータに格納

調べてみると、sessionに関してはページ移動の際のweb.phpの設定の後ろに

->with('status', '例')

をつけると、セッションデータのstatusに第二引数の文字列を格納できるっぽい。

試しにweb.php

Route::get('/', function () {
    return view('home');
});

こいつを

Route::get('/', function () {
    return view('home')->with('status', '例');
});

こう変更してみると…

全然出ないですね。なんじゃそりゃ。なにを間違ったのだろうか…

言語ファイルから翻訳文字列の取得を取得するヘルパ関数”__

もうひとつの{{ __('')}}に関しては、「言語ファイルから翻訳文字列の取得を取得するヘルパ関数」とのこと。要はサイトの言語設定に応じて’You are logged in!’の部分がちゃんと訳をしていれば訳した言葉に置き換えてくれる、ということ?

参考サイト

その翻訳ファイルはresources\langに格納されているということで…

ないんですけど…自分で作るかインストールしないといけないのでしょうか…

作ってみます。

まずはconfig/app.php'locale'の設定がjaであることを確認します(たぶん任意の文字列でもいけるきがしますが日本語なのでjaにしました)

resourcesディレクトリの中にlangディレクトリを作成します。

その中にjaディレクトリを作成します。たぶんlocaleの設定と同じじゃないとだめだと思います。

その中にmassages.phpというphpファイルを作成します。action.phpという名前にしている人もいたのでなんでもいいのかも?

そのphpファイルに

return [
    'You are logged in!' => 'ログイン中',
];

このような形でヘルパー関数に引数の文字列をキーにして日本語訳を代入した配列を作成します。

もしくはresourcesの中にこれまたlocaleで設定したものと同じ名前のjsonファイルを作成します。

その中身も先ほどと同じような配列にします。

{
    "You are logged in!": "ログイン中"
}

このどちらかを作成してから更新すると

ヘルパ関数の部分が日本語に変わっています。このような使い方をすれば元のソースをいじらなくても日本語に変えることができるので便利ですね。余分ににディレクトリ作らなくていいので今回はjsonファイルのほうで作成しました。

これはなかなかおもしろい。よく見るとたくさんこの関数があるのでいろいろ変更しました。

あっと言う間に日本語の画面ができました。すごー。

さいごに

ログイン画面を日本語仕様に変更するために焦って全て打ち変えずにちゃんと調べて正解でした。

ちゃんと理解すれば楽になることがまだまだありそうです。セッション情報に関しては引き続き調べたいと思います。

次回はユーザー一覧とその編集・削除についてやっていきたいと思います。たぶん日報のほうはテーブルの設計まだちゃんと考えてないので…

お知らせ

株式会社プラン・ドゥではphpとデータベースを利用したアプリケーション開発を行なっております。
wordpressでのホームページ作成、phpのスクラッチ開発などが可能です。
業務効率化等でお困りのことがございましたら、システムのご提案からさせていただきますのでお気軽にご相談ください。

その他の取扱商品はこちらからご覧いただけます。
https://plando-inc.co.jp/product

同じカテゴリの記事

関連記事

スポンサーリンク

DTP

Laravel開発

wordpressカスタマイズ

デジタルマーケティング

ライフハック

動画

当社製品について

Contact各種お問い合わせ

お問い合わせ・ご相談など
まずはお気軽にご相談ください

お仕事のご依頼やご相談、弊社サービス内容に関してなど、お気軽にご相談ください。

トップページ コラム 各種お問い合わせ プライバシーポリシー