web-dev-qa-db-fra.com

Laravel - essayer d'accéder au compensation de la valeur de la valeur du type INT

J'ai un problème lorsque j'essaie de soumettre des demandes postales à la base de données. La chose intéressante est que l'erreur ne se produit que lorsque j'utilise PHP version 7.4.2. In PHP version 7.3.9 Tout fonctionne bien. J'utilise Laravel 6.17.

Quand est Laravel va résoudre ce problème?

C'est ma trace de pile, lorsque l'erreur se présente.

Trying to access array offset on value of type int   
in CreateCourseController.php line 176
at HandleExceptions->handleError()
in CreateCourseController.php line 176
at CreateCourseController->createDates()
in CreateCourseController.php line 101
at CreateCourseController->createCourse()
at call_user_func_array()
in Controller.php line 54
at Controller->callAction()
in ControllerDispatcher.php line 45
at ControllerDispatcher->dispatch()
in Route.php line 219
at Route->runController()
in Route.php line 176
at Route->run()
in Router.php line 681
at Router->Illuminate\Routing\{closure}()
in Pipeline.php line 130
at Pipeline->Illuminate\Pipeline\{closure}()
in SubstituteBindings.php line 41
at SubstituteBindings->handle()
in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline\{closure}()
in VerifyCsrfToken.php line 76
at VerifyCsrfToken->handle()
in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline\{closure}()
in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle()
in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline\{closure}()
in StartSession.php line 56
at StartSession->handle()
in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline\{closure}()
in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle()
in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline\{closure}()
in EncryptCookies.php line 66
at EncryptCookies->handle()
in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline\{closure}()
in Pipeline.php line 105
at Pipeline->then()
in Router.php line 683
at Router->runRouteWithinStack()
in Router.php line 658
at Router->runRoute()
in Router.php line 624
at Router->dispatchToRoute()
in Router.php line 613
at Router->dispatch()
in Kernel.php line 170
at Kernel->Illuminate\Foundation\Http\{closure}()
in Pipeline.php line 130
at Pipeline->Illuminate\Pipeline\{closure}()
in TransformsRequest.php line 21
at TransformsRequest->handle()
in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline\{closure}()
in TransformsRequest.php line 21
at TransformsRequest->handle()
in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline\{closure}()
in ValidatePostSize.php line 27
at ValidatePostSize->handle()
in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline\{closure}()
in CheckForMaintenanceMode.php line 63
at CheckForMaintenanceMode->handle()
in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline\{closure}()
in TrustProxies.php line 57
at TrustProxies->handle()
in Pipeline.php line 171
at Pipeline->Illuminate\Pipeline\{closure}()
in Pipeline.php line 105
at Pipeline->then()
in Kernel.php line 145
at Kernel->sendRequestThroughRouter()
in Kernel.php line 110
at Kernel->handle()
in index.php line 55

Salutations

6
NKol

Un problème similaire est déjà répertorié sur référentiel Laravel

Selon - php-doc Il s'agit d'un changement incompatible en arrière de PHP 7.4

Accès de style réseau de non-tableaux

bool, int, float ou resource comme array (tel que $null["key"]) va maintenant générer un avis.

0
Sehdev

Vous essayez probablement d'accéder à un type non de tableau (probablement un type d'objet).

Je vous ai rencontré la même chose mais la différence qu'il fait est que l'un des extraits accède à un objet pendant que l'autre accède à un type de matrice valide.

Le code ci-dessous produit l'erreur essayer d'accéder au décalage de la valeur de la valeur du type INT

$mymodel = MyModel::where(array(
            'someid' => $somevar
        ))->get();
foreach($mymodel as $data){
     //etc
}

J'ai essayé de le mettre à jour pour:

$mymodel = MyModel::where(array(
            'someid' => $somevar
        ))->get()->toArray();
foreach($mymodel as $data){
     //etc
}

Mais il serait vraiment utile de poster votre code afin que nous puissions vérifier davantage.

0
Charmie