Это немного сложно и запутанно …
но у меня есть модель под названием здание, и это имеет отношение к той же модели, но с отношением 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 |
+-----+--------------+-------------+--------+----------------------+---------------------+
Почему это происходит?
Я могу ответить себе .. отношение должно быть:
# 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'
));
}
возможно, кто-нибудь поможет этому.
Других решений пока нет …