在我的laravel5控制器中,我从DB获取了一些行:
$order = Order::select('ordered_by')->where('column1','=','1')->get();
然后在我看来,我在哪里渲染一个表,
@foreach($users as $user)
@if(strpos($order, $user->id) == true) match! @endif
@endforeach
我得到了结果
[{"ordered_by":"309"},{"ordered_by":"524"},{"ordered_by":"541"},{"ordered_by":"545"}]
为什么strpos不工作? (实际上它只为用户#546在表格中给出了“匹配!”) 试过这个:
@if (in_array($user->id,$order) ==true ) ok @endif
但它显示错误in_array() expects parameter 2 to be array, object given
如何检查$user->id
输出中是否存在$order
?
答案 0 :(得分:0)
strpos - 在字符串中查找第一次出现的子字符串的位置
您可以使用 in_array
来获取它尝试给定的脚本
$order = Order::select('ordered_by')->where('column1','=','1')->get()->toArray();
@foreach($users as $user)
@if (in_array($user->id,$order)) ok @endif
@endforeach
答案 1 :(得分:0)
试试这段代码:
$order = Order::where('column1','=','1')->get();
$orders = array_pluck(collect($order)->toArray(), 'ordered_by');
@foreach($users as $user)
@if(in_array($user->id, $orders))
ok
@endif
@endforeach