猿问

Laravel:此集合实例上不存在属性 [名称]

我正在尝试从我的用户表中获取一些数据,用于我的个人资料页面。但是当我点击个人资料页面时,它给了我一些错误:


此集合实例上不存在属性 [名称]。


问题出在哪儿?我做错了还是缺少一些代码?


用户模型


protected $fillable = [

    'name', 'email', 'password', 'nim', 'phone_number', 'department'

];


protected $hidden = [

    'password', 'remember_token',

];


public function dropcv(){

    return $this->hasMany('App\Dropcv');

}


public function registration(){

    return $this->hasMany('App\Registration');

}

控制器


public function index()

{

    $users = User::all();

    return view('users.profile')->with('users',$users);

}


public function show($id)

{

    $users = User::find($id);

    return view('users.profile')->with('users',$users);

}

看法


<h3>{{$users->name}}</h3>

在视图部分,我只是做一些测试来从用户表中获取简单的数据。


我很沮丧为我的问题找到解决方案。我在网上搜索并尝试了很多解决方案,但没有任何效果。我对 Laravel 有点陌生,非常感谢一些帮助。


潇湘沐
浏览 204回答 3
3回答

qq_花开花谢_0

用于控制器public function show($id){$users = User::find($id);return view('users.profile',compact('users'));}用于查看页面<h3>$users->name</h3>用于控制器public function index(){$users = User::all();return view('users.profile',compact('users'));}您正在尝试访问不正确的数组上的属性,您应该先 foreach 然后访问您的属性@foreach($users as $user)<h3>{{ $user->name }}</h3>@endforeach

慕娘9325324

您正在尝试访问不正确的数组上的属性,您应该foreach首先访问您的属性@foreach($users as $user)&nbsp; &nbsp; <h3>{{ $user->name }}</h3>@endforeach编辑当您使用user::all或user::get()它等效于select * from userssql 语法时,laravel 将为您提供一个实例collection而不是数组,因此当您调用时,您将user::all()获得一个包含实例数组的集合user实例,这是一个示例Collection {#332 ▼&nbsp; #items: array:3 [▼&nbsp; &nbsp; 0 => User {#333 ▶}&nbsp; &nbsp; 1 => User {#334 ▶}&nbsp; &nbsp; 2 => User {#335 ▶}&nbsp; ]}更多信息请阅读Laravel Collection
随时随地看视频慕课网APP
我要回答