Laravel-uppgradering till PHP 8.1: Attributvärdet måste vara av typen bool för valt attribut, array given: Laravel-uppgradera till PHP 8.1

När du uppgraderar Laravel till PHP 8.1 kan du få följande meddelande:

Attributvärdet måste vara av typen bool för valt attribut, matris given

Anledningen:

Detta bör troligen finnas i ditt tema eller i din vältaliga kod. Prova att lägga till en ny enkel tillfällig rutt i routes/web.php:

Route::get('/test', function() { return "hej"; });

När du öppnar/testar borde det förmodligen fungera.

Det är därför det kan vara något i ditt tema. Navigera till ditt bladtema.

Konstigt nog verkar detta redan hända innan bladtemat när vi gör en vältalig begäran, som:

Route::get('/test', function() { return Page::all(); });

Märkligt nog, att använda Laravel 9 med PHP 8.0 istället för PHP 8.1 verkar ta bort felet.

Problem löst

Det verkade som om det fanns fel inställningar i mysql-drivrutinen i config/database.php:

'options' => [\PDO::ATTR_EMULATE_PREPARES => true + extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),

När du ändrar detta till:

'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [],

Det löser sig

Är det någon som har haft detta problem också och vet hur man löser detta?

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESvenska
Bläddra till toppen