我遇到此错误:
in_array() expects parameter 2 to be array, object given (View: C:\wamp64\www\partie2-exo\resources\views\index.blade.php)
这是有问题的行:
{!! link_to_route('poll.edit', 'Modifier', [$poll->id], ['class' => 'btn btn-warning btn-block' . (in_array($poll->question, $polls_voted)? ' disabled' : '')]) !!}
此错误来自PollRepository:
$polls_voted = Poll::has('answers')->get();
“ polls_voted”的值应该是获得投票的问题。
答案 0 :(得分:2)
$polls_voted
是Collection。一个简单的解决方法是将所有问题pluck()
转换为toArray()
到数组。
{!! link_to_route('poll.edit', 'Modifier', [$poll->id], ['class' => 'btn btn-warning btn-block' . (in_array($poll->question, $polls_voted->pluck('question')->toArray()) ? ' disabled' : '')]) !!}
答案 1 :(得分:0)
IN_ARRAY()
接受参数2为数组。传递的数组应该是非关联的,例如$arr = ["one","two","three"]
答案 2 :(得分:0)
使用Eloquent Builder时,会得到一个对象。那不是一个数组,所以in_array将不起作用。相反,您可以使用toArray()
将其更改为数组。像这两个例子
$user = App\User::with('roles')->first();
return $user->toArray();
$users = App\User::all();
return $users->toArray();