我正在使用Laravel 5.6,并且创建了两个模型Question和User Model,它们之间使用一对多关系相互链接,如下所示:
问题模型
public function user() {
return $this->belongsTo('App\User');
}
用户模型
public function questions() {
return $this->hasMany('App\Question');
}
我的控制器代码为:
public function index()
{
$user = User::all();
return view('home', compact('user'));
}
因此,我正在尝试获取问题标题,并且已在刀片中编写了以下代码:
@foreach($user as $user)
{{ dd($user->questions->questions_title) }}
@endforeach
但是得到了错误的未定义索引 questions_title ,但是如果只写这个{{ dd($user->questions) }}
,它就会给我所有问题,因此应该如何解决。
我也尝试过
{{ dd($user->questions['questions_title']) }}
,但没有解决。
答案 0 :(得分:1)
您需要遍历您的questions
关系以查看您的问题:
@foreach($user as $u)
@foreach($u->questions as $question)
{{ dd($question->questions_title) }}
@endforeach
@endforeach
注意:我将$user
更改为$u
答案 1 :(得分:0)
在您的控制器中,您没有渴望加载您的questions
关系。将您的代码更改为以下内容:
public function index()
{
$user = User::with('questions')->get();
return view('home', compact('user'));
}
使用with()
方法将用雄辩的查询加载所有指定的关系。此后,您将需要使用questions
集合方法遍历->each()
集合。
@foreach($users as $user)
@foreach($user->question as $question)
{{ $question->question_title }}
@endforeach
@endforeach
答案 2 :(得分:0)
不需要两个foreach
循环,我们可以简单地使用如下所示的循环:
@foreach ($user->questions as $question)
{{ dd($question->questions_title) }}
@endforeach