laravel принадлежит к самому себе привязывающему приложению Relation

Это немного сложно и запутанно …
но у меня есть модель под названием здание, и это имеет отношение к той же модели, но с отношением ownToMany …

В этой модели у меня есть следующие отношения:

# Building Require one or more another Building(s)
public function requires() {
return $this->belongsToMany('Building', 'building_require')->withPivot(array(
'level',
'updated_at',
'created_at'
));
}

А теперь я хочу заполнить свою промежуточную таблицу building_require:

$obj = Building::find(1);
$obj->requires()->attach(4, array(
'level' => 1,
'created_at' => new DateTime,
'updated_at' => new DateTime,
));

Эта проблема:
В моей таблице теперь я нахожу этот ряд:

+-----+--------------+-------------+--------+----------------------+---------------------+
| id  | building_id  | require_id  | level  |     created_at       |     updated_at      |
+-----+--------------+-------------+--------+----------------------+---------------------+
|  1  |           4  |          0  |     1  | 2015-01-29 13:33:45  | 2015-01-29 13:33:45 |
+-----+--------------+-------------+--------+----------------------+---------------------+

Но это неправильно .. Я ожидаю этого:

+-----+--------------+-------------+--------+----------------------+---------------------+
| id  | building_id  | require_id  | level  |     created_at       |     updated_at      |
+-----+--------------+-------------+--------+----------------------+---------------------+
|  1  |           1  |          4  |     1  | 2015-01-29 13:33:45  | 2015-01-29 13:33:45 |
+-----+--------------+-------------+--------+----------------------+---------------------+

Почему это происходит?

0

Решение

Я могу ответить себе .. отношение должно быть:

# Building Require one or more another Building(s)
public function requires() {
return $this->belongsToMany('Building', 'building_require', 'building_id', 'require_id')->withPivot(array(
'level',
'updated_at',
'created_at'
));
}

возможно, кто-нибудь поможет этому.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]