我有一些如下表:
id
name
parent_id
...
parent_id是来自同一个表本身的id,因为它很简单。例如:
id: 1
name: abc
parent_id: 0
id: 2
name: abc_parent
parent_id: 1
id: 3
name: another
parent_id: 1
如何在该模型中的某个函数中获取“名称”?有点像...
public function parentName()
{
$pid = this->parent_id;
/// return self::find($pid)->name; ### this does not actually work
}
我应该创建一个单独的函数并将parent_id传递给它吗?或者有更简单的方法吗?
答案 0 :(得分:0)
在您的模型中,定义父relationship。
class Model extends Eloquent {
public function parent() {
return $this->hasOne('Model', 'parent_id');
}
}
这样您就可以使用$item->parent->name
之类的关系。
如果您需要$item->parentName
之类的内容,可以将attribute accessor作为该关系的别名。
public function getParentNameAttribute() {
return $this->parent->name;
}
然后,您就可以$item->parentName
。