LoginSignup
0
0

More than 3 years have passed since last update.

Laravelで migrationsを使用しないでDB作ったら躓いた話

Last updated at Posted at 2021-02-12

Larabel-admin のコントローラを設定し、モデルも作成し、画面フローができたものの、一覧がいつまでたっても表示されない現象に悩まされたのでメモです。

現象

Larabel-admin にて、新規登録より項目を入力し「送信」クリックで「保存しました」と出るものの、一覧が表示されませんでした。
最初は、登録がされていないのでは?と思い、Laravel-adminの記述法などを確認してみましたが、原因が一向にわかりませんでした。
ふと、DBを直接参照してみたところ、データが格納されていることに気が付きました。登録はできるのに、参照ができないという状態を不思議に思いました。

紆余曲折

EloquentModelの書き方が怪しいのでは?と、テーブル名を変えてみたりいろいろ試したものの、解決できませんでした。
次にEloquentModelを通さず、DBファサードから取得を試しみたところ取得ができました。頭の中が「???」で埋まりました。
また、EloquentModelの書き方などを調べました。

原因

うまくいってるテーブルと新しく作ったテーブルの違いを比較しました。
結果的にtimestampにdefault値が入っていたのが問題でした。
timestampにdefault値が入ると何が問題だったかというと、deleted_atに現在の時間が入ってしまうため、soft delete が効いてしまっていました。
すべての疑問が解決しました。

結論

素直にmigiration を使えばよかったなと思いました(´∇`)ソレナ

一応直接でも、  timestamp NULL default NULL とすれば、NULLでテーブル作成できることは確認しました。

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