Я обновил свою версию laravel с 5.5 до 5.6 и следовал руководству по обновлению, но есть одна ошибка, которую я не могу выяснить.
Ошибка
Argument 2 passed to Symfony\Component\HttpFoundation\Cookie::__construct() must be of the type string or null, array given
Мой код, генерирующий эту ошибку:
public function show($id, DealService $dealService, CookieJar $cookieJar)
{
if(null != $coupon = $dealService->getActiveDealById($id))
{
if(!Cookie::has('recent'))
{
$ids = [];
array_unshift($ids, $id);
$cookieJar->queue('recent', $ids);
}
else
{
$ids = Cookie::get('recent');
if(!in_array($id, $ids))
{
array_unshift($ids, $id);
$ids[] = $id;
$cookieJar->queue('recent', $ids);
}
}
if(!empty($ids))
{
$recent_deals = $dealService->getDealsByIds($ids);
}
$related_deals = $dealService->getRelatedActiveDeals($id);
return view('couponia.show', ['coupon' => $coupon, 'recent_deals' => $recent_deals, 'related_deals' => $related_deals]);
}
else
{
return view('errors.404');
}
}
Метод очереди CookieJar выдает исключение какон пытается создать экземпляр Cookie, но этот код прекрасно работал в 5.5, и документация CookieJar также предполагает, что он принимает массив в качестве аргумента.