私のプロジェクトはローカルホスト上で正常に動作していますが、サーバー上ではレッスンページのみでエラーが発生しています。Laravelの関係がサーバー上で動作していません
対象モデルは
class Subjects extends Model
{
public function category()
{
return $this->belongsTo('Lea\Category');
}
public function lesson()
{
return $this->hasMany('Lea\Lessons');
}
public function chapter()
{
return $this->hasMany('Lea\Chapters');
}
public function users()
{
return $this->belongsToMany('Lea\User', 'subject_user', 'subject_id', 'user_id');
}
}
で、レッスンのモデルは
class Lessons extends Model
{
public function chapter()
{
return $this->belongsTo('Lea\Chapters');
}
public function subject()
{
return $this->belongsTo('Lea\Subjects', 'subject_id');
}
public function category()
{
return $this->belongsTo('Lea\Category');
}
}
私のコントローラのレッスンは、以下のような方法でインデックスを持っています。
public function index()
{
$lessons = lessons::orderBy('id', 'asc')->paginate(5);
return view('admin.lessons.index')->withLessons($lessons);
}
私はサブジェクト名を呼び出す方法を以下に示します。最初の件名は関係件名、2件目は件名がdbに保存されているフィールド名です。データのように取得するためのforeachを使用して:
@foreach ($lessons as $lesson)
{{$lesson->subject->subject}}
@endforeach
対象テーブルのスキーマを
id
subject
admin_id
users_id
category_id
created_at
updated_at
レッスンのテーブルスキーマは、よりそれのようだ
id
title
slug
category_id
subject_id
chapter_id
users_id
content
image
あなたのテーブルのあなたのフィールド名は何ですか? subject_idとsubject_userと同じロジックをたどり、実際にフィールド "subject_name"という名前を付けた可能性はありますか?問題があなたのサブジェクトテーブル – Luke
にあるように見える場合は、フィールド名が問題であれば、このコード{{$ lesson-> subject}}を置いてjson出力を与えるべきですが、サーバー上でnullになっていますが、localhost上のjsonである –
$ lessonオブジェクトはあなたのコントローラを介してあなたのビューに? – Luke