Laravel 5如何仅显示拥有相同列值的Jobs数据?
只显示当前用户创建的职位数据解决方案
没问题,很简单,你只需要修改控制器里的数据查询逻辑,就能实现只展示当前登录用户对应的职位啦。
步骤1:修改控制器代码
把原来获取所有职位的代码,改成筛选出schoolname字段和当前用户名称匹配的职位:
public function index() { // 筛选出当前用户创建的所有职位 $jobs = Job::where('schoolname', Auth::user()->name)->get(); return view('home', compact('jobs')); }
代码说明:
- 用
where('schoolname', Auth::user()->name)来指定过滤条件:只取schoolname等于当前登录用户名称的记录 - 用
get()方法获取符合条件的所有数据,代替原来的all()(all()会取出表中所有数据) - 记得确保你的路由已经添加了
auth中间件,这样只有登录用户才能访问这个页面,避免Auth::user()返回null的情况
步骤2:Blade视图无需修改
你现有的Blade代码完全不用改,因为它是循环渲染$jobs变量的内容,现在$jobs已经是过滤后的当前用户的职位数据了,直接就能正常展示。
如果之后你想优化数据关联(比如用户名称可能修改,建议用用户ID关联),可以考虑给jobs表添加user_id字段,然后通过模型关联来查询,但目前这个方案完全能满足你的需求~
内容的提问来源于stack exchange,提问作者eibersji
相关产品推荐
相关产品推荐

