Хорошо, давайте запустим Member.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Member extends Model
{
// if you changed the primary key id you need to set it here
protected $primaryKey = 'primary_id';
protected $guarded = [];
// Also to work it with route model binding you need this too
public function getRouteKeyName()
{
return 'primary_id';
}
}
Затем web.php
// Get The Form name param has to be the same name as the controller variable
Route::get('/members/{member}/edit', 'MembersController@edit');
// Patch the form.
// Not post because you are not creating.
// Not put because you are not replacing.
// Patch because you are updating
Route::patch('/members/{member}/edit', 'MembersController@update')->name('member.update');
Затем MembersController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Member;
class MembersController extends Controller
{
// Bind the route to the model. It throws 404 if the member does not exit;
public function edit(Request $request, Member $member)
{
return view('members.edit', compact('member'));
}
public function update(Request $request, Member $member)
{
die('i am here update');
}
}
И, конечно, форма
<form class="update-member-form" id="update-member-form" enctype="multipart/form-data">
@csrf
@method('PATCH')
<div class="form-group">
<label for="recipient-name" class="col-form-label">Member ID:</label>
<input type="text" name="member_id" class="form-control" id="member_id" value="{{$member->member_id}}" required>
</div>
<div class="form-group">
<label for="recipient-name" class="col-form-label">First Name:</label>
<input type="text" name="fname" class="form-control" id="editMember_name" value="{{$member->fname}}" required>
</div>
<div class="form-group">
<label for="recipient-name" class="col-form-label">Middle Name:</label>
<input type="text" name="mname" class="form-control" id="editMember_mname" value="{{$member->mname}}" required>
</div>
<div class="form-group">
<label for="recipient-name" class="col-form-label">Last Name:</label>
<input type="text" name="lname" class="form-control" id="editMember_lname" value="{{$member->lname}}" required>
</div>
</form>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal" onClick="window.location.reload()" >Close</button>
<button type="button" class="btn btn-primary btn-update-member">Save updates</button>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script>
$(".btn-update-member").click(function(e){
e.preventDefault();
$.post("{{ route('member.update', $member->primary_id) }}", $("#update-member-form").serialize(), function(data){
if(data.notify == "Success"){
swal({
title: "Record successfully updated",
text: "Message will close in 2 seconds",
type: "success",
timer: 2000
});
} else{
console.log(data.notify);
}
},"json");
});
</script>
Конечно, вы можете избежать привязки модели маршрута и получить идентификатор из поля ввода или просто как int id из маршрута, а затем выполнить запрос через проверку базы данных, если участник выходит, и бла-бла-бла.