技術メモ

【Laravel】ステータスメッセージ機能!

こんにちは。プログラミング初心者のもも(@momo_programer)です🍀

 

今回はステータスメッセージという機能を付けてみたいなと思い、それについて書いてきます。

 

ステータスメッセージとは何かというと、LINEにある機能でプロフィールの一言コメント的なものですね。

 

特徴は、初期値が空文字で登録されていて、コメントありにもなしにもできること。

 

Laravel開発におけるカラムの追加の知識やSQLの知識がまた少しアップできたので初心者必見です。

まずは見た目の確認(前回の記事のおさらい)

今回はbladeファイルについては触れないので、どんな見た目のものかだけ載せます。

 

気になる方は前回の記事をチェックお願い致します。

前回の記事を見てみる

こんな感じのを作ろうとしています。

 

「ひとこと」の所は、一番最初はカラの状態になっています。

 

で、「こんにちは」など登録することが可能です。そして、「こんにちは」から再びカラで登録することも可能にしたいですね!

 

それではやっていきます。

カラムの追加と設定

まずはカラムの追加をしていきます。MySQLサーバーに接続できていることを確認してからやるといいと思います。

 

前提として、カラムを追加する先のテーブルはusersです。usersテーブルの中にはnameやemailやpasswordといったカラムが入っています。

 

カラムを追加するには、マイグレーションファイルを新しく作ることで追加できます。そのコマンドがこちら。

$ php artisan make:migration add_comment_to_users_table --table=users

 

add_comment_to_users_tableはマイグレーションファイルのファイル名になるのでお好みで大丈夫です。開かずともファイル名で分かると良いです。

 

--table=usersはテーブルを指定しているので、ここは確実に^^

 

マイグレーション実行の際にエラーなど起きる場合は、データベース上にあるテストデータをtinkerで一回全部消してからやるといいかもです。(今回は必要ないとは思いますが習慣化できるといいのかなと思います)

 

マイグレーションファイルが作られたと思うので開き、中にはup()とdown()があり、スキーマの中身は「//」となって何も書かれてません。

 

ここにカラムを追加していきます。

 

 

nullable()が空文字を許可するという意味合いになるのでキーポイントです。

 

通常nullable()とせずにstring('comment')だけだと、MySQLでテーブル内を参照すると、NULL値がNOという設定になっています。これだと、空文字はエラーとなってしまうんですね。

 

私も最初、これを知らなくてエラーになり、string('comment')->default('')とやってもエラーでした。

 

nullable()を設定後のMySQLのテーブル内を見てみると、

 

 

こうですね。NULL値がYESにちゃんとなってますね^^

 

これでマイグレーションを実行すれば正式にカラムが追加されます。

 

$ php artisan migrate

 

これでOKです。もしカラムの内容に間違いがある場合は、一度ロールバックをしてから修正しましょう。

 

$ php artisan migrate:rollback

 

修正したら再度マイグレーション実行しましょう。

ルーティングの確認とコントローラー@updateに追記

ルーティングの確認しておきます。

 

 

25・26行目どちらでも構いません。こうなっていれば、とくにルーティングの設計は必要ないです。

 

続いて、コントローラーのupdateアクションに処理を書いていきます。

 

 

前回の記事で名前変更機能を付けました。その際にupdateをすでに用意してあったので、そこに追記。

 

これで完成です^^64行目で$commentの初期値を設定していたのですが、これは設定しなくても動きました!

追記:デプロイ先のDBにもマイグレーション必須

完成したら、Webに公開するかと思います。

 

今回のようにマイグレーションファイルを作ったら、デプロイ先のデータベース(DB)にもマイグレーションしてすり合わせをする必要があります。

 

お忘れなく^^

まとめ

createアクションを作る必要があるのかが悩みどころだったので、こういうあとから設定できるものは必要じゃないのかもですね。

 

LaravelだとMySQLってほとんど触らなくなるんですが、今回のNULL値のようなときに活きてくるんだなとか思いました。

 

ぜひ参考にしてみてください^^

ももの公式メールマガジン

プログラミングに興味がある人やプログラミング学習を始めた人のために、

とっても大切なマインドについて公開しています。

 

私が思うに、マインドが整っていれば、どんな手段から学べます。

 

無料で学習しても、プログラミングスクールで学習したとしても自分の力にしていけます。

 

でもマインドが整っていないと、せっかくプログラミングスクールにお金を払っても、うまくいかなくて泣く思いをしてしまいます。

 

そんな風になってほしくないから、メルマガを始めました。

 

詳細はこちらのページを覗いてみて下さい^^

COMMING SOON...

-技術メモ

Copyright© とある新人SEは、走らない。 , 2021 All Rights Reserved Powered by AFFINGER5.