質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

3回答

277閲覧

Laravelの書き方について

yokoyama_takuzo

総合スコア19

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2019/06/07 08:08

編集2019/06/07 08:39

Laravel初心者です。
今現在、こちらのLaravelチュートリアルを見ながら学習を進めています。
https://blog.hiroyuki90.com/articles/laravel-bbs/

例えば、upメソッドにテーブルを増やす際に書くような内容、

Laravel

1$table->foreign('post_id')->references('id')->on('posts');

こういったものの書いている意味が全く分かりません、
このforeignやpost_id、referencesやonやpostsなどの意味が全く分からず困っています。
これらの意味合いとは、一体何なのでしょうか?

またこういった書き方を、覚えなくてはいけないものなのか?
あとは、どこかこれらについて学べるサイトのようなものをご存知の方がいらっしゃいますでしょうか?

普段なんとなくチュートリアルを進めてはいるのですが、内容もよく理解しないまま淡々と進めてしまっているので、果たしてこのままではいつまで経っても理解出来ないままなのではないか?と悩んでいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/06/07 08:18 編集

>いくつかのLaravelチュートリアル とはなんでしょうか。具体的に記載してください。
m.ts10806

2019/06/07 08:36

質問は編集できますので適宜追記いただければと
guest

回答3

0

ベストアンサー

これらの意味合いとは、一体何なのでしょうか?

機能の説明などは日本語訳リファレンスにあると思います。

foreign()は外部キー制約でしょうね。

外部キー制約

Laravelはデータベースレベルの整合性を強制するために、テーブルに対する外部キー束縛の追加も提供しています。たとえばusersテーブルのidカラムを参照する、postsテーブルのuser_idカラムを定義してみましょう。

「外部キー制約」と聞いてピンとこないのでしたら、そこはLaravelの話ではなくデータベースの話です。
データベースの概念を学んでください。

あと$table->foreign('post_id')->references('id')->on('posts');こういう->で重ねるやり方を「チェーンメソッド」と言います。
「前の実行結果を持って次の処理を実行する」ようなときに利用します。
PHPに限らず出てきます。

またこういった書き方を、覚えなくてはいけないものなのか?

Laravelを効率よく使っていくには必要でしょう。
日本語訳マニュアルにある以上は推奨されている書き方です。
※間違ってもバージョンだったり出版日付の古い書籍を参考にしてはいけません

あとは、どこかこれらについて学べるサイトのようなものをご存知の方がいらっしゃいますでしょうか?

私が提示した日本語訳マニュアルが最も読みやすいのではないでしょうか。

ただ、オブジェクト指向をある程度、使いこなせるようになっておかないと厳しいとは思います。
Laravelは他の有名どころのPHPフレームワークより学習コストが高い印象があります。

普段なんとなくチュートリアルを進めてはいるのですが、内容もよく理解しないまま淡々と進めてしまっているので、果たしてこのままではいつまで経っても理解出来ないままなのではないか?と悩んでいます。

とりあえず簡単なCRUDを作るところから始めてはどうでしょうか。
それができたら掲示板のようなもの、認証機能を入れたもの、とステップアップしていけば良いでしょう。

淡々と進めるよりも段階的に目標を決めて段階毎に成果物を残していくやり方のほうが成長の実感を持てるのではないでしょうか。これはフレームワークに限らずですね。

投稿2019/06/07 08:30

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yokoyama_takuzo

2019/06/07 08:45

ご親切に回答ありがとうございます。 再度PHPの基本からやり直してみます。それからデータベースについても勉強をしてみます。 CRUDのチュートリアルもいくつか済ませてはみたのですが、やはりなかなか理解が難しかったので、再度勉強をし直したいと思います。 この度は誠にありがとうございました。
m.ts10806

2019/06/07 08:51 編集

そうですね。特にオブジェクト指向、データベース操作のところはしっかりとおさえておく必要があると思います。 難しいとは思いますが、Laravelのコアソースを読み込むのもありです。 冒頭から、というより、例えばコレクションはどういう機能を持っているか日本語訳ドキュメントと見比べてみたり、ルーティングの動作やコントローラー・ビューのあたりだったり。 確実に1つ1つおさえていけば全くどうにもならないというものではなくなりますし、むしろ効率的な開発の助けになってくれるはずです。
yokoyama_takuzo

2019/06/07 08:56

分かりました。Laravelがとても難しくて何度も何度も挫折しているのですが、また懲りずにどうにかやってみます。ありがとうございます!
m.ts10806

2019/06/07 08:59

学習に入る際の前提知識は多いですが、きちんと備わっていれば様々な展開も考えられるようになりますので、がんばってください。 ※私も学習中です。なぜかついてる「Laravel総合1位」という称号は嫌がらせによるものなので、Laravelの知識技術はこの回答の他の回答者の足元にも及びません。
yokoyama_takuzo

2019/06/07 09:04

ありがとうございます! なぜそういった嫌がらせをするのでしょう、困ったものですね。 ただ今回の回答は本当に救われます。 自分が一体何から勉強をすればいいのかが全く分からなくて困っていましたので。 まずはデータベースの次にPHPの基本をまた再度一からやってみます。 大変ですけど頑張ります!
m.ts10806

2019/06/07 09:07

何かのヒントになったのでしたら幸いです。
guest

0

Laravelで見るべき対象はドキュメントしかない。
https://readouble.com/laravel/5.8/ja/migrations.html#foreign-key-constraints

外部キーはLaravelの前にデータベースの知識として知ってる前提。

Laravelを使うには初心者が思ってる以上に膨大な知識を要求されるので
初心者がいきなり触っても使えるようにはならない。
ドキュメントだけ読んで理解できないならLaravel使うための最低限のスキルが足りてない。

投稿2019/06/07 08:34

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yokoyama_takuzo

2019/06/07 08:41

回答ありがとうございます。まずはデータベースの勉強を始めてみます。
guest

0

sql foreign

自分もよくわかんないけどで上に書いたワードでグーグル先生に聞いてみたらこんなサイトが出てきました
どうやら親テーブルと子テーブルの二つの関係があって初めて使えるようなものらしいです

投稿2019/06/07 08:23

hentaiman

総合スコア6421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yokoyama_takuzo

2019/06/07 08:50

どうもご親切に回答ありがとうございます。 なるほど、今の私には少し難しい内容のようです。 再度一から勉強をし直していきたいと思います。 ありがとうございました!
hentaiman

2019/06/07 09:01

SQLのお勉強から始めるといいですよ。 コマンドラインでもGUIツールでも良いけど、create tableでテーブルを作る、insertでテストデータを投入する、selectでデータを取得するというところから始めるとか 親と子ってのは、例えば親テーブルに【お菓子、野菜、肉】というデータ、子テーブルには【たけのこの里、コアラのマーチ、牛肉、馬肉】というデータを入れとくような、親子みたいな関係性を考えたテーブル設計をした場合の話です。親テーブルは概念です。親テーブルというもの自体があるわけではありません。 「DB リレーション」とかで検索するのもありです
yokoyama_takuzo

2019/06/07 09:07

なるほど!早速検索してやってみます。 まずはSQLで次に「DB リレーション」をやってみます。 本当にご親切に回答いただいて助かります。 お先が真っ暗で本当に困っていました。 本当にありがとうございます!また頑張ってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問