LoginSignup
0
1

More than 5 years have passed since last update.

プログラミング初心者が1冊の本を参考に勉強して入ったツボについて

Posted at

掌田 津耶乃さんが書かれた「PHPフレームワーク Larevel入門」という本を参考に勉強しています。
Eloquent ORMのbelongsTo結合を勉強中に入ったツボについて書いてみます。

まず、2つのテーブルを作りました。

スクリーンショット 2018-08-19 21.15.16.png

主テーブルにあたるpeopleテーブル

スクリーンショット 2018-08-19 21.15.36.png

従テーブルにあたるboardsテーブル。

やりたかったのは、belongsTo結合で
従テーブル(borders)側から関連する主テーブル(people)を取り出すこと。

下記はBoardのモデルです。

スクリーンショット 2018-08-19 21.59.29.png

実際に/boardにアクセスしてみると、

スクリーンショット 2018-08-19 22.01.42.png

エラーになりました。
自分はエラー画面をみると混乱するという属性持ちなので、
このときもなぜ、エラーになったのかわからず、自分を攻撃し続けていました。
エラーがわからなかったのは、本の通りにやったのになぜ?という考えがあったからだと思います。

後日、勉強を教えていただいているメンターのかたにエラーの原因を教えて頂きました。

"Trying to get property 'name' of non-object"
空の名前の配列をgetしようとしたことによるエラーでした。

従テーブルにはperson_idがあるけど、
関連するidが主テーブルにないというとでもない設計ミスでした。

スクリーンショット 2018-08-19 22.17.15.png

Board ModelのgetDataメソッドを修正。

スクリーンショット 2018-08-19 22.19.54.png

エラーが消えました。

反省点
本を書いた方はコードを書いている側がどのようなテーブルを作っているかなんて、
把握できない(できるはずもない)。
テーブルを作った本人が誰よりも把握しているべきだし、多数のテーブルを扱うときはより慎重にならなくてはならない。
本だけに頼るのではなく、自分のテーブルにあったコードを考え、情報を集め、
エラーになっても混乱せず、冷静に対処できなければならない。

ということが骨身にしみたエラーの話でした。

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