はじめに
下記の親記事を参考にLaravel5.6で書き直す形で掲示板を作ってみました。ハマりそうなポイントを記事にまとめてみました。基本は親記事をもとにすすめて、うまくいかずに詰まったときに本記事のサンプルコードを参考にすると幸せになれるかもしれません。
親記事
【保存版】Laravelで掲示板を作成する方法【チュートリアル】
サンプルコード
環境
Laravel: 5.6.12
modelsディレクトリのオートローダー設定
Eloquentのモデルをappディレクトリ以外に作成して利用する場合は、composer.jsonにオートローダーの設定をする必要があります。親記事のチュートリアルではapp/modelsディレクトリにモデルクラスを作成していましたので、modelsディレクトリの中をオートロードしてくれるよう設定していきます。
1. composer.jsonを書き換える
composer.jsonの20行目あたりにclassmapの設定項目がありますので、そこにapp/modelsを読み込むよう1行加えます。
"autoload": {
"classmap": [
"app/models", // この行を追加
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
},
2. composer.jsonの変更を下記コマンドで反映
composer dump-autoload
オートローダーの役割ってcomposerが担ってくれていたんですね。てっきりLaravelがやってくれているものだと思ってました。
リソースコントローラを作成するためのコマンド
Laravel5.6だと下記のように打つとうまく生成されます
php artisan make:controller PostsController --resource
postでstoreコントローラにアクセスできない
LaravelではCSRF対策でformの中に@csrfディレクティブを記述しないとうまくPOSTでアクセスできないようになっています。詳しくはLaravelの公式ドキュメントあたりを参照してください。
さいごに
自分で最新版のLaravelに書き換える作業が一番勉強になったりするので、みなさんも元ネタの記事から頑張って書き直してみるのもありかもしれません。本記事のソースコードを答え合わせとして使ってみてください。