Laravel 5.0 数据 使用 bootstrap3 表单插入


Laravel 5.0 data Insertion using bootstrap3 form

我正在尝试使用引导表单将数据插入到我的数据库名称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');

我找不到错误在哪里。

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');
}

这是为了避免重新提交表单。