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!') }}
に至っては中のテキストがそのまま出てきてるだけだし。
調べてみると、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ファイルのほうで作成しました。
これはなかなかおもしろい。よく見るとたくさんこの関数があるのでいろいろ変更しました。
あっと言う間に日本語の画面ができました。すごー。
ログイン画面を日本語仕様に変更するために焦って全て打ち変えずにちゃんと調べて正解でした。
ちゃんと理解すれば楽になることがまだまだありそうです。セッション情報に関しては引き続き調べたいと思います。
次回はユーザー一覧とその編集・削除についてやっていきたいと思います。たぶん日報のほうはテーブルの設計まだちゃんと考えてないので…
お仕事のご依頼やご相談、弊社サービス内容に関してなど、お気軽にご相談ください。