【发布时间】:2018-07-09 20:50:55
【问题描述】:
我有一个多对多的关系,现在我想知道如何使用用户发送到应用程序的表单来更新我的表格。这是我的代码 路线:
Route::get('admin/client/assign','ClientController@assignsellman');
这是我的控制器
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'));
}
最后是视图:
<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>
当我提交此表单时,它会重定向到这样的 url ?_method=PUT&_token=mvf0i2FaxSBhDdJroqD6L1901QdvcR4b3tmgwekw&client=3&sellman=3 数据库什么也没发生。知道我的错是什么吗?
【问题讨论】:
-
你的路由无效 Route::put('admin/client/','ClientController@assignsellman');
-
我是否也应该更改表单的方法?因为当我将路线更改为你所说的时,我得到页面未找到错误
-
从 html 中添加
action='post'并添加新路由Route::put('admin/client/','ClientController@assignsellman'); -
我认为您需要阅读有关方法、网址等的信息。在您的情况下,您需要 2 条路线,首先用于返回表单,其次用于保存表单中的数据
-
@foreach($user as $users) 它看起来不正常,更改为 @foreach($users as $user) 并在控制器中 $users = User::all();///紧凑(“用户”);