【问题标题】:Passing Array (not Object) for Auth in Laravel在 Laravel 中为 Auth 传递数组(不是对象)
【发布时间】:2017-08-25 07:54:00
【问题描述】:

我在传递数组时遇到了一些问题,请给我一些建议,以便我可以解决这个问题。

这是我的控制器:

$keluhan_list=DB::table('keluhans')
->select(DB::raw('id,produk,username,masalah,id_departemen'))
->where('status','=','Proses')->get();
return view('layanankonsumen.lihattindaklanjut',compact('keluhan_list');

这是我的 Blade 视图的一部分:

@if (Auth::check() && (Auth::user()->level == 'MR' || Auth::user()->level == 'PDD' || Auth::user()->id_departemen ==' @foreach ($keluhan_list as $keluhan) {{$keluhan->id_departemen}} @endforeach' ))

这不是错误,但它没有通过身份验证。当我尝试用 Auth::user()->id_departemen == '10' 替换时,它正在工作。

【问题讨论】:

  • 所以lavel 是用户表中的列吗?
  • @imrealashu level,id_departemen 是我的用户表上的列,我想授予具有特定用户 id_department 的用户访问更多权限。我尝试将其替换为“10”及其工作和我意识到我的错是在我调用数组时开始的

标签: php html arrays laravel laravel-5.2


【解决方案1】:

返回视图中的一个错误

$keluhan_list=DB::table('keluhans')
->select(DB::raw('id,produk,username,masalah,id_departemen'))
->where('status','=','Proses')->get();
return view('layanankonsumen.lihattindaklanjut',compact('keluhan_list'));// add one more braces before semicolon

首先在刀片中添加这一行

@foreach ($keluhan_list as $keluhan) 
   <?php $id_dept[] = $keluhan->id_departemen; ?>
@endforeach

然后

@if (Auth::check() && (Auth::user()->level == 'MR' || Auth::user()->level == 'PDD' || in_array(Auth::user()->id_departemen,$id_dept) ))

【讨论】:

  • 我得救了 :) 非常感谢兄弟,感谢您的所有回复,愿上帝保佑大家
【解决方案2】:

使用in_array()

检查一个值是否存在于数组中

@if (.... || in_array(Auth::user()->id_departemen, array_column($keluhan_list, 'id_departemen'))

【讨论】:

  • 你好 @Alexey Mezenin 谢谢你的一些建议,但它以这样的错误结束 调用数组上的成员函数 pluck() 我该怎么办?
  • @ChristianusAndre 如果是数组,请使用array_column($keluhan_list, 'id_departemen') 而不是$keluhan_list-&gt;pluck('id_departemen')
  • hello @Alexey Mezenin 错误消失了,但仍然没有显示我想显示的按钮,如果 auth 正确通过...我的 id_department 是 int,我通过它并检查 dd($keluhan_list) 和它显示值 10 (int) 它必须是工作但它不是 T_T
  • @ChristianusAndre 这与您提出的问题无关。只需调试所有 4 个条件,您就会看到哪个返回 false
猜你喜欢
  • 1970-01-01
  • 2016-12-30
  • 2021-05-30
  • 2016-05-13
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 2016-03-10
  • 2016-06-08
相关资源
最近更新 更多