質問: Laravel初心者です。 今現在、こちらのLaravelチュートリアルを見ながら学習を進めています。 https://blog.hiroyuki90.com/articles/laravel-bbs/ 例えば、upメソッドにテーブルを増やす際に書くような内容、 ``` $table->foreign('post_id')->references('id')->on('posts'); ``` こういったものの書いている意味が全く分かりません、 このforeignやpost_id、referencesやonやpostsなどの意味が全く分からず困っています。 これらの意味合いとは、一体何なのでしょうか? またこういった書き方を、覚えなくてはいけないものなのか? あとは、どこかこれらについて学べるサイトのようなものをご存知の方がいらっしゃいますでしょうか? 普段なんとなくチュートリアルを進めてはいるのですが、内容もよく理解しないまま淡々と進めてしまっているので、果たしてこのままではいつまで経っても理解出来ないままなのではないか?と悩んでいます。
回答: > > これらの意味合いとは、一体何なのでしょうか? > > > 機能の説明などは日本語訳リファレンスにあると思います。 * データベース:マイグレーション foreign()は外部キー制約でしょうね。 > > 外部キー制約 > > Laravelはデータベースレベルの整合性を強制するために、テーブルに対する外部キー束縛の追加も提供しています。たとえばusersテーブルのidカラムを参照する、postsテーブルのuser_idカラムを定義してみましょう。 > > > 「外部キー制約」と聞いてピンとこないのでしたら、そこはLaravelの話ではなくデータベースの話です。 データベースの概念を学んでください。 あと`$table->foreign('post_id')->references('id')->on('posts');`こういう`->`で重ねるやり方を「チェーンメソッド」と言います。 「前の実行結果を持って次の処理を実行する」ようなときに利用します。 PHPに限らず出てきます。 > > またこういった書き方を、覚えなくてはいけないものなのか? > > > Laravelを効率よく使っていくには必要でしょう。 日本語訳マニュアルにある以上は推奨されている書き方です。 ※間違ってもバージョンだったり出版日付の古い書籍を参考にしてはいけません > > あとは、どこかこれらについて学べるサイトのようなものをご存知の方がいらっしゃいますでしょうか? > > > 私が提示した日本語訳マニュアルが最も読みやすいのではないでしょうか。 ただ、オブジェクト指向をある程度、使いこなせるようになっておかないと厳しいとは思います。 Laravelは他の有名どころのPHPフレームワークより学習コストが高い印象があります。 > > 普段なんとなくチュートリアルを進めてはいるのですが、内容もよく理解しないまま淡々と進めてしまっているので、果たしてこのままではいつまで経っても理解出来ないままなのではないか?と悩んでいます。 > > > とりあえず簡単なCRUDを作るところから始めてはどうでしょうか。 それができたら掲示板のようなもの、認証機能を入れたもの、とステップアップしていけば良いでしょう。 淡々と進めるよりも**段階的に目標を決めて段階毎に成果物を残していくやり方**のほうが成長の実感を持てるのではないでしょうか。これはフレームワークに限らずですね。