2014-02-23 46 views
0

我有一些表像如下:Laravel - 型号和功能

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

在你的模型中,定义父亲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