Laravel Eloquent-无法检索关系数据

时间:2018-09-03 05:08:05

标签: php laravel

我想使用Laravel Eloquent从数据库中检索联接表。我可以获取关系,但是我想如何获取属于联接表的详细信息?例如,我有一个applicantsapplicant_children表。 applicant_children表是applicants表上父母和孩子的联接表。我得到的详细信息只是父项详细信息。

Applicant.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\ApplicantChildren;

class Applicant extends Model {
    protected $guarded = [];

    public function childrens(){
        return $this->hasMany(ApplicantChildren::class, 'ic_staf', 'ic');
    }

}

ApplicantChildren.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\Applicant;

class ApplicantChildren extends Model
{
    protected $guarded = [];

    public function children(){
        return $this->belongsTo(Applicant::class, 'ic_anak', 'ic');
    }

    public function parent(){
        return $this->hasOne(Applicant::class, 'ic', 'ic_staf');
    }
}

RegistrationController.php

public function show($id) {    
    $applicantDetails = Applicant::
    with('childrens')
    ->find($id);

    dd($applicantDetails);
}

输出示例:

Result

我如何像父母一样获取孩子的详细信息?

3 个答案:

答案 0 :(得分:1)

您可以获取类似的详细信息

foreach ($applicantDetails->childrens as $child) {
    var_dump($child->children);
    var_dump($child->parent);
}

答案 1 :(得分:1)

您的样本输出中有子级数据。只需要做的就是遍历该对象

答案 2 :(得分:0)

只需使用如下关系名称:

print_r($ applicantDetails-> childrens);

上面将打印儿童数据。