如何通过Laravel中的非主键字段获取用户名

时间:2019-05-14 13:23:15

标签: laravel-5

我有以下两个表

USERS
--------------
id   name
--------------
1    Joe
2    Adam
--------------


TASKS
--------------------------------------------------------
id   user_id   assigned_to   content     
--------------------------------------------------------
1       1               1     bla_bla_a
1       1               2     bla_bla_b
--------------------------------------------------------

CONTROLLER

$tasks = Task::all();
return view('list', compact('tasks'));

查看


<tr>
    <th>ID</th>
    <th>Creator</th>
    <th>ASSIGNED TO</th>
    <th>CONTENT</th>
</tr>

@foreach($tasks as $task)
<tr>
    {{ $task->id }}
    {{ $task->user->name }}
    {{ $task->assigend_to }}  // what sould i write here to get the user name.
    {{ $task->content }}
</tr>
@endforeach

我的问题是:我应该怎么做才能在视图中获取分配了该任务的用户名? 问候

1 个答案:

答案 0 :(得分:0)

使用一对一关系。 Read Here

Task.php 模型中添加此关系

public function user() {
    return $this->belongsTo(User::class);
}

现在在视图中像$task->user()->name;一样获取

如果您已经在模型中拥有此关系,则只需按以下步骤向用户加载Task:

控制器中的更改-

$tasks = Task::with('user')->get();