2015-03-08 35 views
3

我有以下型號需要一個1設置爲一對多的關係在同一個表中Laravel 4

類別:

<?php 

class Category extends Eloquent { 
    protected $table = "category"; 
    protected $fillable = array('title','parent','metatit','metadsc','metake','metaurl','image'); 
    public function categoryitems(){ 
     return $this->hasMany('CategoryItem','catid'); 
    } 
    public function parent(){ 
     return $this->hasMany('category','parent'); 
    } 
    public function child(){ 
     return $this->belongsTo('Category','parent'); 
    } 
} 

需要一個1設置爲類別表 防爆一對多的關係類別「城市」是類「國家」的孩子

的錯誤,當我嘗試使用下面的代碼

<?php 

$parent = Category::where('id','=',$cat->id)->parent; 
echo $parent->title; 

?> 
發生

錯誤:

ErrorException(E_UNKNOWN) 未定義的屬性:照亮\數據庫\雄辯\生成器:: $父(查看:在/ var/WWW/phpWithAngulerJS /應用/視圖/管理/類別編輯.blade.php)

回答

6

首先,修復關係如下:

public function children() { 
    return $this->hasMany('Category','parent'); 
} 
public function parent() { 
    return $this->belongsTo('Category','parent'); 
} 

和你的查詢需要首先被執行:

$parent = Category::where('id','=',$cat->id)->first()->parent; 
// btw since you have $cat, you probably can do simply: 
$cat->parent; 

echo $parent->title; 
相關問題