如何在laravel中访问控制器内的对象属性?

时间:2018-06-07 09:07:50

标签: php laravel

您好我想知道如何在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.

3 个答案:

答案 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;