Вы можете сделать это несколькими способами:
Во-первых, вы можете использовать функцию detach () (требуется вторая функция в вашем контроллере). Пример использования формата, аналогичного предоставленному вами:
public function unshare(Request $request, $id)
{
$document = Document::findOrFail($id);
$userId = $request['user']; //Assuming this is the User ID
$user = User::findOrFail($userId);
$user->documents()->detach($document->id);
flash('Document has been detached!');
return back();
}
Во-вторых, вы можете создать одну функцию, которая переключает ассоциацию. По сути, вы отправляете идентификатор документа, и если он уже связан с пользователем, он отсоединяется, если он НЕ связан с пользователем, он будет присоединен.
public function share(Request $request, $id)
{
$document = Document::findOrFail($id);
$userId = $request['user']; //Assuming this is the User ID
$user = User::findOrFail($userId);
$user->documents()->toggle($document->id); //This can also be an array of IDs
flash('Document has been toggled!'); //You might want to pass something or look up the association if you want custom messaging for attach or detach
return back();
}
Надеюсь, это поможет!