首页 > 解决方案 > 尝试使用 user_id Laravel 从用户模型中获取用户名

问题描述

当我尝试使用反馈模型的外键 ( ) 获取用户名 ( )时,我收到一个错误未定义变量。$user->nameUser modelid$feedback->user_id

@php
   
use App\Feedback;
use App\User;

$feedbacks = Feedback::all();
@endphp
<!DOCTYPE html>
<html>

<body>
<a href="/admin">ADMIN DASHBOARD</a> |<a href="{{ url('/logout') }}"> LOGOUT</a><br><br>
<h3>Feedbacks</h3>
<table border="1">
<tr><th>ID</th><th>Left By</th><th>Feedback</th></tr>
@foreach ($feedbacks as $feedback)
                
                <tr>
                <td>{{ $feedback->id}}</td>
                <td>{{ $user->name }}</td>
                <td>{{ $feedback->feedback }}</td>
                </tr>
$uid=$feedback->user_id;
$user= User::find($uid);

@endforeach
</table>
</body>
</html>

标签: phplaravel

解决方案


我建议在和之间建立一种关系(如果你还没有)。您的关系将被放入模型中,如下所示:feedbackuserFeedback

// Feedback.php

public function user() {
    return $this->belongsTo('App\User');
}

这将与在桌子上feedbackuser使用user_id有关。feedback

在此之后,当在您的控制器中调用时feedback,您可以急切地加载user与 each的关系feedback。这可以在以下范围内完成:

$feedbacks = Feedback::with('user')->get();

最后,在您的模板中,您将能够通过执行以下操作来调用user每个:feedback

{{ $feedback->user->name }}

注意:此示例假设您的表格name中有一个字段。user


推荐阅读