Laravel 如何在视图上为特定的经过身份验证的用户显示数据库表数据
我目前正在开发一个功能,当用户创建时,可以选择他的工作位置,我通过外键连接,用户可以选择特定工作的ID,并且在存储数据时工作良好,特定字段的实际ID显示在users表上,但现在我的问题是当我想显示经过身份验证的用户的特定数据时 这是我的桌子 约伯表 身份证件 工作名称 生产线经理 部门 树枝 工作类型 id是位于的users表的外键 工作证 这是我的工作控制器:Laravel 如何在视图上为特定的经过身份验证的用户显示数据库表数据,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,我目前正在开发一个功能,当用户创建时,可以选择他的工作位置,我通过外键连接,用户可以选择特定工作的ID,并且在存储数据时工作良好,特定字段的实际ID显示在users表上,但现在我的问题是当我想显示经过身份验证的用户的特定数据时 这是我的桌子 约伯表 身份证件 工作名称 生产线经理 部门 树枝 工作类型 id是位于的users表的外键 工作证 这是我的工作控制器: public function index() { $role = Auth::guard('web')-&g
public function index()
{
$role = Auth::guard('web')->user()->role_id;
if($role == 1)
{
$jobs = Job::latest()->where('id',auth()->user()->id)->get();
return view('job.index',compact('jobs'));
}
模型:
class Job extends Model
{
protected $table = 'jobs';
public function jobWhich()
{
return $this->job_name;
}
这是我想要的视图,我在创建用户时选择的ID的数据,在这里显示插入数据库的静态数据,这样它就不会改变
<tbody>
@foreach($jobs as $job)
<tr>
<td>{{$job->job_name}}</td>
<td>{{$job->line_manager}}</td>
<td>{{$job->department}}</td>
<td>{{$job->branch}}</td>
<td>{{$job->job_type}}</td>
</tr>
@endforeach
</tbody>
我不确定是否需要向用户控制器显示如何将其存储到用户中,但它运行良好,因为我可以在创建时在用户处看到特定字段的id。您需要用户和作业之间的关系。只需在jobs表/迁移中添加created_by column。然后将此关系用于职务模型:
class Job extends Model
{
public function creator()
{
return $this->belongsTo(User::class,'created_by');
}
}
在控制器中,请使用以下命令:
$jobs = Job::latest()->where('created_by',auth()->user()->id)->get();
您可以在作业的用户模型上定义关系,以简化此操作:
class User ...
{
public function job()
{
return $this->belongsTo(Job::class);
}
}
然后,您可以通过关系简单地获得用户的作业:
$job = Auth::guard('web')->user()->job;
属于用户模型
public function job(){
return $this->belongsTo(App\Job::class, 'user_id', 'job_id');
}
工作模式
public function users(){
return $this->hasMany(App\User::class, 'job_id', 'user_id');
}
控制器
$user = Auth::user();
// In cas you want to eager load.
$user->load('job');
您可以使用作业关系访问用户的作业
echo $user->job->job_name;
如果我理解正确,您希望显示用户的作业 如果这是正确的,您需要在您的用户模型中设置foreig密钥
public function job()
{
return $this->belongsTo('App\Job');
}
然后您可以获得用户作业,如:$job=$user->job或$user->job->get
之后,您可以像处理所有作业那样将其传递给视图:
返回视图'job.index',压缩'job'
最后,您不需要在刀片服务器中使用foreach循环:
您可以简单地显示像`{$job->job\u name}这样的项目?n等等
如果这是您的意思,请告诉我也许您想在用户和作业模型之间建立一种关系,以便轻松实现这一点?用户有一个引用作业id的外键,因此这可能可行吗?但是我很新,所以我不确定该怎么做,我所需要做的只是显示用户在工作id上的id字段中的数据,从我创建它时开始谢谢你非常感谢你非常感谢