Laravel展示数组数据时出现“Trying to access array offset on value of type int”错误
解决Laravel中“Trying to access array offset on value of type int”错误
错误原因
路由里listings数组的定义存在语法错误:当前代码仅将第一个关联数组赋值给listings,第二个列表项数组是作为view方法参数数组的独立元素存在,并非listings的子元素。这导致Blade模板中@foreach($listings as $listing)循环的是单个关联数组的键值对,循环时$listing会依次取到1(int类型)、Listing One等值,此时尝试访问$listing['title'],就会触发“无法在int类型值上访问数组偏移”的错误。
修正后的路由代码
Route::get('/listing', function(){ return view('listings', [ 'heading' => 'Latest Listing', 'listings' => [ [ 'id' => 1, 'title' => 'Listing One', 'description' => 'Description One for Listing one... also some random text to make it look like a description.' ], [ 'id' => 2, 'title' => 'Listing Two', 'description' => 'Description Two for Listing two... also some random text to make it look like a description.' ] ] ]); });
修正说明
将两个列表项的关联数组统一包裹在listings对应的数组内部,让listings成为包含两个完整列表项的数组。此时模板中的@foreach能正确遍历每个列表项,访问$listing['title']等字段就不会再出错。你的Blade模板代码无需修改,保持现有内容即可。
内容的提问来源于stack exchange,提问作者Saani Info
相关产品推荐
相关产品推荐

