2014-01-08 4 views
0

нормально У меня есть эта таблица «области»:Laravel Eloquent один ко многим же объекта

id -> primary key, int 
parent -> int, index, nullable 
areaName -> string 

эта таблица содержит области, и каждая область может быть сыном другой области, чтобы родительский столбец может быть пустым, или другой идентификатор любой другой области.

Теперь я хочу сделать его доступным с помощью Красноречивого, это отношение ко многим.

Я пробовал этот код, но не очень хорошо, любые идеи от кого-то, кто сделал что-то вроде этого?

class Area extends Eloquent { 

    public function sons() { 

     return $this->hasMany('Area', 'id', 'parent'); 
    } 

    public function parent() { 
     return $this->belongsTo('Area'); 
    } 

} 

ответ

0

Я кладезь решение, он прекрасно работает для меня.

class Area extends Eloquent { 
    public function subAreas() { 
     return $this->hasMany('Area', 'parent', 'id'); 
    } 

    public function parentArea() { 
     return $this->belongsTo('Area', 'parent', 'id'); 
    } 
} 
0

Если я не ошибаюсь, и из данного кода, Laravel жалуется area_id столбец не найден, я прав?
Это происходит потому, что вы не указали имя иностранного столбца, и Laravel пытается угадать его для вас.

определение Изменение отношения к этому

public function parent() { 
    return $this->belongsTo('Area', 'parent'); 
} 
+0

спасибо, я отправил свое полное решение. –

Смежные вопросы