2015-06-24 1 views
0

Я хотел бы отделить модель с помощью шарнира, который имеет дополнительную информацию. для крепления, это хорошо работает:Laravel Как отключиться от модели с дополнительной информацией

$user->badges()->attach($badge_id, ['additional' => $addInfo]); 

То, что я хотел бы сделать, это

$user->badges()->detach($badge_id, ['additional' => $addInfo]); 

но, к сожалению, удаляет все значки с $ badge_id.

+0

Возможный дубликат [Laravel отношение много ко многим с дополнительным стержнем] (http://stackoverflow.com/questions/30982382/laravel-relation-many-to-many-with-additional-pivot) –

+0

@SafoorSafdar Я не знаю Нет никаких упоминаний в этом потоке для отсоединения с помощью поворота – NiRR

+0

, однако при отсоединении другие атрибуты данных автоматически отсоединяются. вам не нужно отделяться отдельно. –

ответ

0

Приложение имеет возможность предоставить дополнительные атрибуты, отсоединить нет. Смотрите ссылку апи:

http://laravel.com/api/5.1/Illuminate/Database/Eloquent/Relations/BelongsToMany.html#method_detach

int detach(int|array $ids = array(), bool $touch = true) 

Вы могли однако сделать что-то вроде:

$user->badges()->where('id',$badge)->where('additional', $addInfo)->update(['user_id' => null]); 

Предполагая, что это badges.user_id и дополнительное просто значение.

+0

это более или менее то, что я сейчас делаю - из-за кустительности - зачем аннулировать user_id, а не удалять? – NiRR

+0

Отсоединение означает удаление связи с объектом. Не удаление. – Luceos

+0

Конечно - я имел в виду, почему бы не удалить отношения ... Отключить определенно удаляет строку в сводной таблице, которая не оставляет пустых отношений в таблице ... – NiRR

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