2017-02-22 10 views
0

モデル名が変更されたため、私のクラスStudentは正しく動作しません。モデルAssoとリンクLaravel 5 belongsTo(classname :: class)が動作しません

`id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
`name` text COLLATE utf8mb4_unicode_ci NOT NULL, 
`student_id` text COLLATE utf8mb4_unicode_ci NOT NULL, 
`created_at` timestamp NULL DEFAULT NULL, 
`updated_at` timestamp NULL DEFAULT NULL, 

クエリApp\Asso::first()->belongsTo(Student::class)戻りnull

クエリが関連する学生を返しApp\Asso::first()->belongsTo('App\Student','student_id')assosと呼ばれるデータベースで 。

belongsTo(Student::class)が正しく動作しない理由がわかりません。あなたはそれを理解するのを助けることができますか?

Eloquent: Relationships One To Oneから、どうもありがとう

答えて

1

雄弁は関係のメソッドの名前 を調べ、_idでメソッド名を接尾辞を付けることにより、デフォルトの外部キーの名前を決定します。

あなたが関係をインラインで定義されているように見えるので

は、メソッド名は、おそらくそれは student_idを探していない、それは mehtodname_idを探している studentではありません。

2番目の例では、関係を探すフィールドを教えているので、正しいものを見ています。

具体的に質問とは無関係ですが、あなたは本当に関係法を誤用しています。これらはモデルで定義する必要があります。

+0

関係の使用について心配する必要はありません。このポストを説明するためだけだった:)ありがとう! –

関連する問題