データベースに投稿要求を送信しようとすると問題があります。興味深いことは、PHPバージョン7.4.2を使用するときにのみエラーが発生します。 PHPバージョン7.3.9すべてがうまく機能します。私はLaravel 6.17を使っています。
Laravelはこの問題を解決する予定ですか?
エラーが発生したときの私のスタックトレースです。
_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
_
恩知らずの
それは約PHPバージョンです。PHP 7.4rcでは、鍵ごとに配列にアクセスすることがあります。これはPHP 7.2でこのエラーが発生します。アレイを確認するために、empty($array)
を使用するだけではありません。関数
同様の問題はすでに上場されています Laravelリポジトリ
によると PHP-Doc これはPHP 7.4
の逆方向の互換性のない変更です。
非アレイの配列スタイルアクセス
bool
、int
、float
またはresource
array
($null["key"]
など)は通知を生成します。
おそらくあなたはおそらく非配列タイプ(おそらくオブジェクトタイプ)にアクセスしようとしています。
私は同じになってきましたが、それが作る違いは、1つのスニペットがオブジェクトにアクセスしている間に、他方が有効な配列タイプにアクセスすることです。
以下のコードはエラーを生成しますint型の値の配列オフセットにアクセスしようとしている
$mymodel = MyModel::where(array(
'someid' => $somevar
))->get();
foreach($mymodel as $data){
//etc
}
_
私はそれを更新しようとしました:
$mymodel = MyModel::where(array(
'someid' => $somevar
))->get()->toArray();
foreach($mymodel as $data){
//etc
}
_
しかし、あなたがあなたのコードを投稿するように本当に役に立ちます。