我想在同一张桌子上建立关系,但我不确定它是否可能......
我的表格作业包含字段id
,name
和parent_id
。我想得到一些工作和他们的父母(以及他们自己的父母,如果他们有一个,等等。)
这是我的模特:
class Job extends Model
{
public function jobParent()
{
return $this->belongsTo('App\Job', 'parent_id');
}
}
在我的控制器中,我这样做:
$select = Job::take(10)
->with('jobParent')
->get();
我显示了查询,我可以看到关系中的一个:
从id为(?,?,?)
的作业中选择*
我有10个父母为我的10个工作,所以看起来是正确但它返回父:我的每个工作都为null ...
你看到我错过了吗?
我将此添加到我的请求中,因为我还想要父母的父级:
->with(['jobParent' => function($query) {
$query->with('jobParent');
}]);
我可以看到两个查询,所以它确实有效,它只是不显示!
从id为(?,?,?)
的作业中选择*从id为(?,?)
的作业中选择*
我以这种方式输出结果:
$return = [
'success' => 1,
'totalCount' => $totalCount,
'nextOffset' => $offset+$nb,
'jobs' => $jobs
];
$code = 200;
return response()->json($return, $code);
Wich给了我这个:
{ “成功”:1, “totalCount”:10706, “nextOffset”:10, “工作”: [ { “名字”:“xxx”, “parent_id”:15, “job_parent”:null },...
我试着做一些我的工作和一个var_dump($ job-> jobParent),但它也说 NULL ......
我只是不明白为什么它不存储结果......
答案 0 :(得分:0)
我想通了:job.id是一个字符串,我在我的模型中输入它并且工作正常:
protected $casts = ['id' => 'string'];