我正在尝试使用引导程序表单将数据插入到我的数据库名称Client
中。但是,如果单击“提交”按钮,页面将直接指向newClinetForm
页面,而不会将任何值插入客户端数据库。我正在使用laravel 5.0版。
这是newClientForm
刀片模板的表单部分:
<form role="form" method="post" action="{{url('clients/newClientForm')}}">
<input type="hidden" name="_token" value="{{csrf_token() }}">
<div class="form-group">
<label>Name</label>
<input class="form-control" name="ClientName" placeholder="Erfan">
</div>
<div class="form-group">
<label>Client ID</label>
<input class="form-control" name="ClientID" placeholder="Ect112">
</div>
<div class="form-group">
<label>Phone No.</label>
<input class="form-control" name="Phone" placeholder="01XX-XXXXXXX">
</div>
<button type="submit" class="btn btn-default">Submit Button</button>
</form>
而不是csrf_token()
我尝试了Session::token()
,但也没有帮助。
这是我的控制器部分:
public function newClientFormIndex(){
return view('clients.newClientForm');
}
public function store(Request $request) {
$client = new Client();
$client->ClientID = $request->ClientID;
$client->ClientName = $request->ClientName;
$client->Phone = $request->Phone;
$client->save();
}
这是模型部分:
class Client extends Model {
protected $table = 'clients';
public $timestamps = false;
protected $primaryKey = 'ClientID';
protected $fillable = ['ClientID', 'ClientName', 'Phone'];
}
这是路线部分:
Route::resource('clients/newClientForm', 'IspController@newClientFormIndex');
我无法找到错误的位置。
答案 0 :(得分:0)
在newClientFormIndex
中,您没有调用store
函数。
此外,可能值得区分显示表单的路由和实际保存数据的路由,例如:
Route::get('clients/newClientForm', 'IspController@newClientFormIndex');
Route::post('clients/newClientForm', 'IspController@store');
然后将商店方法更改为重定向到表单:
public function store(Request $request) {
$client = new Client();
$client->ClientID = $request->ClientID;
$client->ClientName = $request->ClientName;
$client->Phone = $request->Phone;
$client->save();
return redirect('clients/newClientForm');
}
这样可以避免重新提交表单。