Reputation: 2000
i have a many to many realtion and now i wana know how can i update my table with a form that user sends to app . here is my code route :
Route::get('admin/client/assign','ClientController@assignsellman');
this is my controller
public function assignsellman(Client $client){
$user = User::all();
$client_list = Client::all();
$client = Client::with('sellmanlist')->firstOrFail();
$sellman = $request->input('sellman');
$client_name = $request->input('client');
$client->sellmanlist()->attach($sellman);
$client->sellmanlist()->attach($client_name);
$client->save();
return view('admin.client.assign',compact('client_list','user'));
}
and finnaly the view :
<form action="/admin/client/" method="get">
<input type="hidden" name="_method" value="PUT">
{{ csrf_field() }}
<div class="row">
<div class="col-xs-4">
<div class="form-group">
<label for="client">مشتری</label>
<select class="" tabindex="-1" aria-hidden="true"
name="client">
@foreach($client_list as $client_lists)
<option value="{{$client_lists->id}}">{{$client_lists->title}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-xs-4 text-center">
<i class="icon-arrow-left7 mr-3 icon-3x" style="font-size: 130px"></i>
<h4>ارجاع به</h4>
</div>
<div class="col-xs-4">
<div class="form-group">
<div class="form-group">
<label for="sellman">کارشناس فروش</label>
<select class="" tabindex="-1"
aria-hidden="true" name="sellman">
@foreach($user as $users)
<option value="{{$users->id}}">{{$users->name}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<button type="submit" class="btn btn-primary">تایید</button>
</form>
when i submit this form it redirects to a url like this ?_method=PUT&_token=mvf0i2FaxSBhDdJroqD6L1901QdvcR4b3tmgwekw&client=3&sellman=3 and nothing just happens to database .any idea what is my fault ?
Upvotes: 0
Views: 47
Reputation: 1732
In your case you need 2 routes, first for return form, second to save data from form. Your routes:
Route::get('admin/client/assign','ClientController@assignsellman');
Route::post('admin/client/assign','ClientController@assignsellmanSave');
Controller:
public function assignsellman(Client $client)
{
$user = User::all();
$client_list = Client::all();
return view('admin.client.assign',compact('client_list','user'));
}
public function assignsellmanSave(Client $client)
{
$user = User::all();
$client_list = Client::all();
$client = Client::with('sellmanlist')->firstOrFail();
$sellman = $request->input('sellman');
$client->sellmanlist()->attach($sellman);
$client->save();
return view('admin.client.assign',compact('client_list','user'));
}
View:
<form action="/admin/client/assign" method="post">
{{ csrf_field() }}
<div class="row">
<div class="col-xs-4">
<div class="form-group">
<label for="client">مشتری</label>
<select class="" tabindex="-1" aria-hidden="true"
name="client">
@foreach($client_list as $client_lists)
<option value="{{$client_lists->id}}">{{$client_lists->title}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-xs-4 text-center">
<i class="icon-arrow-left7 mr-3 icon-3x" style="font-size: 130px"></i>
<h4>ارجاع به</h4>
</div>
<div class="col-xs-4">
<div class="form-group">
<div class="form-group">
<label for="sellman">کارشناس فروش</label>
<select class="" tabindex="-1"
aria-hidden="true" name="sellman">
@foreach($user as $users)
<option value="{{$users->id}}">{{$users->name}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<button type="submit" class="btn btn-primary">تایید</button>
</form>
Upvotes: 1