我一直在获取Undefined数组密钥



我试图返回数据库查询的数据,然后将其作为刀片文件中的数组进行访问,但我一直收到这个错误:未定义的数组键"cover_img";。

我的控制器

$id=request()->segment(count(request()->segments()));
$userdata=DB::table('users')->select('id','first_name','last_name','profile_img','cover_img')->where('id',$id)->get();
if($id!=auth()->id()) {
return view('show-prof')->with(compact('userdata'));
} else {
return view('profile');
}

我的刀片文件

<div class="container">
@if($userdata['cover_img']!=null)
<img src="{{url('/images/user_cover_img/'.$userdata['cover_img'])}}" id="cover">
@else
<img src="/images/user_cover_img/cover_default.png" id="cover">
@endif
</div>

我测试了是否通过键入返回数组

<p>{{$userdata}}</p>

输出为

[{"id":1,"first_name":"mohamad","last_name":我还尝试了dd($userdata(,结果是:

IlluminateSupportCollection {#377 ▼
#items: array:1 [▼
0 => {#1255 ▼
+"id": 1
+"first_name": "mohamad"
+"last_name": "abedelhady"
+"profile_img": null
+"cover_img": null
}
]
}

您的查询为您提供了一个包含匿名对象(stdClass(的IlluminateSupportCollection对象(集合(:

// This 
$users = DB::table('users')->select('id','first_name','last_name','profile_img','cover_img')
->where('id',$id)->get();

我想你只想通过id获得用户,请这样做。

$user = DB::table('users')->select('id','first_name','last_name','profile_img','cover_img')
->where('id',$id)->first();
// Or
$user = DB::table('users')->select('id','first_name','last_name','profile_img','cover_img')
->whereKey($id)->first();

因为$user是一个匿名对象,所以您可以通过以下方式访问属性:

$user->cover_img;

或者,如果您有一个User模型,您可以简单地执行此操作。

$user = User::find($id);
// Then both are gonna work, but I recommend using the former.
$user->cover_img;
$user['cover_img'];

让我们在这里查看您的Eloquent Quer:

$userdata=DB::table('users')->select('id','first_name','last_name','profile_img','cover_img')
->where('id',$id)->get();

这里的get((方法返回一个用户记录数组。所以不是

$userdata['cover_img']!=null

您需要从数组的第一个元素访问cover_img。像这样:

$userdata[0]['cover_img']!=null

您似乎只处理一条记录,应该使用first()方法只获取一个对象,然后您的代码应该可以使用

$userdata=DB::table('users')->select('id','first_name','last_name','profile_img','cover_img')
->where('id',$id)->first();

记住:first((方法只返回一条记录,而get((方法将返回一个可以循环的记录数组。

最新更新