在Laravel 5.6中没有问题模型的值

时间:2018-12-17 17:04:32

标签: php laravel

我正在使用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']) }},但没有解决。

3 个答案:

答案 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