Eloquent имеет запрос - PullRequest
       5

Eloquent имеет запрос

0 голосов
/ 27 января 2019

У меня есть эта ошибка:

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' : '')]) !!}

Эта ошибка происходит из репозитория Poll:

$polls_voted = Poll::has('answers')->get();

значениями "polls_voted" должны быть вопросы, за которые проголосовали.

Ответы [ 3 ]

0 голосов
/ 27 января 2019

Когда вы используете Eloquent Builder, вы получаете объект.Это не массив, поэтому in_array не будет работать.Вместо этого вы можете использовать toArray(), чтобы преобразовать его в массив.Как и эти 2 примера

$user = App\User::with('roles')->first();

return $user->toArray();


$users = App\User::all();

return $users->toArray();

https://laravel.com/docs/5.7/eloquent-serialization

0 голосов
/ 27 января 2019

$polls_voted в вашем случае это коллекция .Простым решением этой проблемы было бы 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' : '')]) !!}
0 голосов
/ 27 января 2019

IN_ARRAY() принять параметр 2 в качестве массива. Переданный массив должен быть неассоциативным, как этот $arr = ["one","two","three"]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...