使用bootstrap3表单

时间:2016-03-17 12:46:23

标签: php mysql twitter-bootstrap laravel-5 phpmyadmin

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

我无法找到错误的位置。

1 个答案:

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

这样可以避免重新提交表单。