1
1

More than 3 years have passed since last update.

LaravelでToDoアプリを作ったときの備忘録

Last updated at Posted at 2020-08-05

定期的にQiitaで記事を投稿(アウトプット)することが大事かなと思い、間違い等もあると思うが、書いていく。

下の記事を参考にToDoアプリを作る際の備忘録を残していく。
下の備忘録は、全てこちらの記事に載っているのでそちらを参考にする。
HyperTextCandy LaravelによるToDoアプリ作成記事

環境

  • Windows10
  • Xampp
  • MySQL
  • PHP7
  • Laravel7
  • VsCode使用

準備

$ laravel new ToDoで新しくToDoプロジェクトができあがった。かんたん。
$ php artisan serveでロケットが出ることを確認。オッケーちゃんとできてる。

色々

  • コントローラ作成
  • マイグレーション作成
  • モデルクラスの作成
  • シーダーの作成
    • $ php artisan make:seeder FoldersTableSeederでシーダーを作成
    • シーダーの中にテストデータを記述する。参考文献を参照。ただし、Carbon::now()はLaravel7では最初からパッケージ化されているのでnow()でいける。
    • $ php artisan db:seed --class=FoldersTableSeederでテストデータをテーブルに入れる。「successfully」がでればオッケー。
  • タスクを選択しているかしていないか
    • viewのaタグに三項演算子を用いてactiveを付与する。{{ $current_folder_id === $folder->id ? 'active' : '' }}
  • tinkerの利用
    • $ php artisan tinkerすると、コマンドラインからアプリの機能を見ることができる。例えば>>> $folder = \App\Folder::find(1);すると、Folderテーブルからid=1を拾ってきて表示してくれる。

アクセサ

これまでの学習ではよくわかっていなくてスルー気味だったので、ここで確認。
モデルクラス内で、get[HogeHoge]Attributeを定義すると、[モデル名]->[hoge_hoge]でアクセスできるとのこと。

viewで条件分岐してたけど、modelのなかに組み込むというのもありだよね。

FormRequestクラスの作成

フォーム入力時には、バリデーションが必要ですよね。ちゃんと学びましょう。
$ php artisan make:request CreateFolder
app/Http/Requests フォルダに CreateFolder.phpが作られる。
このCreateFolderにバリデーションルールを記述する。
その後、
Controllerでメソッドの引数で渡すRequestをCreateFolderクラスに変更する。FormRequestクラスは、Requestクラスと互換性あり。
つまり、
public function index(Request $request)の部分を、public function index(CreateFolder $request)とすることで、FormRequestクラスである、「CreateFolder」を使ってバリデーションしたあとにフォームを$requestで受け付けることができる。

バリデーション違反のときのメッセージ

バリデーション違反の場合のメッセージは、resources/lang/en/vallidation.phpの中に、連想配列で記述されている。
それを日本語にするには、jaディレクトリを作って、上のファイルをそのままコピーして、該当する部分を変えていく。楽したいなら、誰かが作ってくださったものを利用するのが良いかも。

共通のバリデーションメッセージはここにあるが、別個に作る場合は、FormRequestクラスの中に、messages()メソッドを作ってreturnしてやるといい。

編集画面のTips

oldメソッドの第一引数に、inputのname属性を指定、第二引数にはデフォルト値を指定する。そうすると、編集画面時には、もうすでに入力値があればそれを出力してくれる。

1
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
1
1