我正在使用Slim与Eloquent,我遇到了一些错误,嵌套关系在选择特定列时返回null。 我的代码如下所示:
class User extends Model {}
class Task extends Model {
public function publisher() {
return $this->belongsTo('App\User', 'published_by');
}
}
class Package extends Model {
public function task() {
return $this->belongsTo('App\Task', 'task_id');
}
}
发生了一件奇怪的事情:
// Works well, I got publisher info and task info, but some columns are useless
// I just want to hide them and (may) improve performance in this case
Package::with('task.publisher:id,nick')->get();
// I got a null publisher
Package::with('task:id,title', 'task.publisher:id,nick')->get();
// Error: Unknown column `publisher`
Package::with('task:id,title,publisher')->get();
Package::with('task:id,title,publisher:id')->get();
我如何使用Package
和Task
发布商(Task's
模型获得User
模型,而只有Task
和{的特定列{1}}会被退回吗?
谢谢。
答案 0 :(得分:0)
OP解决方案。
我猜选择Task
的特定列会导致Task.published_by
到null
,以便User
无法查询publisher()
。解决方案如下所示:
// This works well
Package::with('task:id,title,published_by', 'task.publisher:id,nick')->get()