Laravel 5.3在同一个表上的belongsTo关系显示没有结果



我想在同一张表上建立一个关系,但我不确定这是可能的…

我有一个表作业字段id, nameparent_id。我想找一些工作和他们的父母(如果他们有父母的话,还有他们自己的父母,等等)。

这是我的模型:

class Job extends Model
{
    public function jobParent()
    {
        return $this->belongsTo('AppJob', 'parent_id');
    }
}

在我的控制器中,我这样做:

$select = Job::take(10)
               ->with('jobParent')
               ->get();

我显示了查询,我可以看到一个关系:

select * from jobs where id in (?), ?, ?)

我有3个父母为我的10个工作,所以它似乎是正确的,但它返回parents: null为我的每个工作…

你知道我错过了什么吗?


我把这个添加到我的请求中,因为我也想要父元素的父元素:

->with(['jobParent' => function($query) {
    $query->with('jobParent');   
}]);

我可以看到这两个查询,所以它确实工作,它只是不显示!

select * from jobs where id in (?), ?, ?)

select * from jobs where id in (?)

吗?)

我这样输出我的结果:

$return = [
    'success' => 1,
    'totalCount' => $totalCount,
    'nextOffset' => $offset+$nb,
    'jobs' => $jobs
];
$code = 200;
return response()->json($return, $code);

它给了我这个:

{"成功":1、"totalCount":10706年,"nextOffset":10"工作":({"名称":"xxx","parent_id":15日"job_parent":null},…

我试图做一个foreach我的工作和var_dump($job->jobParent),但它说NULL以及…

我只是不明白为什么它不存储结果…

我明白了:工作。id是一个字符串,我把它在我的模型,它工作得很好:

protected $casts = ['id' => 'string'];

最新更新