我有一个用户和部门表。所以我的部门表可能有这样一行
id | departmentName
----------------------
2 | Marketing
----------------------
用户表可能有类似
的内容 id | name | email | departmentId
-------------------------------------------------------
18 | Nick | nick@email.com | 2
-------------------------------------------------------
因此,users表通过id链接到departments表。
所以现在进入我的UserController,在index函数中,我做
public function index()
{
$users = User::all();
return view('users.index', compact('users'));
}
现在,它将显示我的用户表中的所有内容。
我的问题是,我不想显示departmentId。我想显示链接到该departmentID的departmentName。因此,在上面的示例中,我的用户索引页面应该显示Marketing,而不是2。
我将如何做到这一点?
由于
答案 0 :(得分:3)
您可以使用Eloquent Relationships。您在问题中描述的内容是One-to-Many Relation,这意味着某个部门可以拥有多个用户,并且每个用户都属于某个部门。因此,您需要为departments
表设置一个模型(如果您还没有这样做),然后在User
模型中定义关系,如下所示:
class User extends Model
{
public function department()
{
return $this->belongsTo('App\Department', 'departmentId');
}
}
然后,您可以通过该关系访问视图中的部门详细信息:
@foreach ($users as $user)
{{ $user->department->departmentName }}
@endforeach