У меня есть базовая система добавления, которая позволяет арендодателям добавлять арендаторов, и арендаторы имеют возможность принимать / отклонять. Принятие очень просто: когда клики арендатора принимают, логическое значение принятия изменяется на 1. В данный момент все строки принимаются, а не только между арендодателем и арендатором.
Это пример строки в базе данных:
Если арендатор щелкнет по кнопке «Принять», принятая строка изменится на 1, а отправленный запрос вернется к 0. Теперь пользователи подключены.
Однако будут затронуты все строки, которые имеют accepted = 0
и request = 1
, а не только текущую строку.
Это принятый контроллер
public function accept(Request $request)
{
Tenancy::where('accepted', 0)
->where('request_sent', 1)
->where('tenant_id', Auth::id())
->update([
'accepted' => 1,
'request_sent' => 0,
]);
return back();
}
Есть идеи?
EDIT
Маршрутный URL
Route::post('/account/tenancy/{id}/accept', 'AccountController@accept')->middleware('auth');
Вся форма и логика для принятия / отклонения
@if($currentUser->userType == "Tenant")
@if($tenancy == null ||$tenancy->accepted == 0 && $tenancy->request_sent == 1 && $tenancy->tenant_id == $currentUser->id)
<form method="POST" action="/account/tenancy/{{$user->id}}/accept">
{{ csrf_field() }}
<input type="submit" class="btn btn-primary" value="Accept Request">
</form>
<form method="POST" action="/account/tenancy/{{$user->id}}/reject">
{{ csrf_field() }}
<input type="submit" class="btn btn-warning" value="Reject Request">
</form>
@endif
дд ($ аренды)