为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel - 尝试访问 int 类型值的数组偏移量

Laravel - 尝试访问 int 类型值的数组偏移量

PHP
largeQ 2022-10-09 20:05:47
当我尝试向数据库提交发布请求时遇到问题。有趣的是,该错误仅在我使用 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 176at HandleExceptions->handleError()in CreateCourseController.php line 176at CreateCourseController->createDates()in CreateCourseController.php line 101at CreateCourseController->createCourse()at call_user_func_array()in Controller.php line 54at Controller->callAction()in ControllerDispatcher.php line 45at ControllerDispatcher->dispatch()in Route.php line 219at Route->runController()in Route.php line 176at Route->run()in Router.php line 681at Router->Illuminate\Routing\{closure}()in Pipeline.php line 130at Pipeline->Illuminate\Pipeline\{closure}()in SubstituteBindings.php line 41at SubstituteBindings->handle()in Pipeline.php line 171at Pipeline->Illuminate\Pipeline\{closure}()in VerifyCsrfToken.php line 76at VerifyCsrfToken->handle()in Pipeline.php line 171at Pipeline->Illuminate\Pipeline\{closure}()in ShareErrorsFromSession.php line 49at ShareErrorsFromSession->handle()in Pipeline.php line 171at Pipeline->Illuminate\Pipeline\{closure}()in StartSession.php line 56at StartSession->handle()in Pipeline.php line 171at Pipeline->Illuminate\Pipeline\{closure}()in AddQueuedCookiesToResponse.php line 37at AddQueuedCookiesToResponse->handle()in Pipeline.php line 171at Pipeline->Illuminate\Pipeline\{closure}()in EncryptCookies.php line 66at EncryptCookies->handle()in Pipeline.php line 171at Pipeline->Illuminate\Pipeline\{closure}()in Pipeline.php line 105at Pipeline->then()in Router.php line 683at Router->runRouteWithinStack()in Router.php line 658at Router->runRoute()in Router.php line 624at Router->dispatchToRoute()in Router.php line 613at Router->dispatch()in Kernel.php line 170
查看完整描述

4 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

Laravel 存储库中已经列出了类似的问题

根据PHP-Doc,这是一个向后不兼容的变化PHP 7.4

非数组的数组式访问

boolintfloator resourceas an array(例如$null["key"]) 现在将生成通知。


查看完整回答
反对 回复 2022-10-09
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

composer update为我的案例工作:

我有一个Laravel 5.6应用程序,带有Php 7.1.

此外,我必须更改laracasts/generators为fromcomposer.json才能开始,例如:^1.0dev-mastercomposer update

"laracasts/generators": "^1.0"

开始在一些旧项目上解决此问题,问题发生php artisan migratecomposer install.

https://github.com/spatie/laravel-permission/issues/1370#issuecomment-676556816


查看完整回答
反对 回复 2022-10-09
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

您可能正在尝试访问非数组类型(可能是对象类型)。


我也遇到过同样的情况,但它的不同之处在于一个片段访问一个对象,而另一个片段访问一个有效的数组类型。


下面的代码产生错误Trying to access array offset of value of type 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

}

但是,您发布代码会非常有帮助,以便我们进一步检查。


查看完整回答
反对 回复 2022-10-09
?
ibeautiful

TA贡献1993条经验 获得超5个赞

这是关于PHP版本的。在 php 7.4rc 中,通过键访问数组,有时会导致错误。这个错误很少发生在 php 7.2 上。检查数组是否有成员只需使用empty($array)函数



查看完整回答
反对 回复 2022-10-09
  • 4 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信