您好我想知道如何在laravel控制器中访问和存储获取对象的属性,这是我的代码: -
$phonebooks = Phonebook::with('client')->get();
$test = $phonebooks->id;
return view('admin.phonebooks.index', compact('phonebooks'))->with('current_time',$current_time);
我想在$test
变量中存储id属性,但是我收到此错误: - Property [id] does not exist on this collection instance.
答案 0 :(得分:2)
它是一个集合
$users = User::with('posts')->get();
then $userId = $users->id // this will always throw error
而是尝试这样做
foreach($users as $user) {
dd($user->id);
}
答案 1 :(得分:2)
$phonebooks
是可变类型的集合
因此您必须使用foreach或仅索引来访问每个电话簿。
与foreach:
$i = 0;
foreach($phonebooks as $phonebook){
$test[$i] = $phonebook->id;
$i++;
}
或定义索引:
$test = $phonebooks[0]->id;
答案 2 :(得分:1)
$phonebooks = Phonebook::with('client')->get();
此\Illuminate\Database\Eloquent\Collection
的返回实例。
对于这种情况,请使用
foreach ($phonebooks as $phonebook) {
$test = $phonebook->id;
}
或者你必须使用
在db中只获得一个录音$phonebooks = Phonebook::with('client')->first(); // if need some condition
$test = $phonebook->id;