こんにちは。
今回はドットインストールの『Laravel5.5入門』を進めていたときにぶつかった問題と対処法についての記録です。
注:以下はプレミアム会員限定のコンテンツをご紹介しています。
Laravelとは
そもそもLaravelとはなんなのでしょうか。
PHPを開発する際に使うWEBフレームワークの一種、つまりより簡単にPHPを用いた開発を行うためのテンプレということでしょうか。
PHP用のフレームワークには特に日本での人気が根強い「CakePHP」や海外で人気が伸びている「Codeigniter」などがあります。
ドットインストールのLaravel5.5入門#27でハマった話
ドットインストールを使ってLaravelの学習を進めていたとき、#26までは順調に来ていました。
しかし、ブログの記事とコメントをひもづける回の#27で詰まってしまいました。
そのときのエラーがこちら。
title2(title1)をクリックすると#26でmigrationしたコメントのモデルがbodyの下に表示されるはず、、、、。
ん?
※エラー全文
SQLSTATE[HY000]: General error: 1 no such column: comments.post_id (SQL: select * from "comments" where "comments"."post_id" = 2 and "comments"."post_id" is not null) (View: /home/vagrant/laravel_lessons/myblog/resources/views/posts/show.blade.php)
ドットインストールの手順に従って進めてきたのにcomments.post_idのカラムが存在しない?
ドットインストールのソースコードをコピペし再実行してもうまくいかず。
もしかしたらサーバーの設定の問題かな?とか思いつつドットインストールに質問をしてみると以下のような回答が。
どうやら#26のmigrationがうまく実行できていなかった様子。
言われるままにもう一度実行するものの、ちゃんとファイルは作られており効果なし。
次にphp artisan migrate:refresh
でコマンドを最初の状態に巻き戻します。
すると今度はうまくいきました。
データベースの中に入っていたテーブルは空になっていたものの、データを新しく追加してあげると以下のように元の状態に。
まとめ
以上、今回はドットインストールのLaravel5.5入門でハマった際に行った対処法の備忘録を書きました。
migrate:refresh
の後に--step=number
を入れると直近の入れた数字分のマイグレーションをリセットしてくれるような機能もあるようです。
頑張って使いこなせるようにこれからも勉強に励みます。