LARAVEL Post Method在地址栏

时间:2018-02-22 04:05:35

标签: php mysql laravel

我尝试使用post方法将数据插入数据库,但不是插入数据,而是在我的网络浏览器的地址栏上显示任何内容和令牌。

这就是显示:

http://localhost:8000/missions/dupe/1?_token=hd0xhTVvYYBBlIpJ2smCv6x5AmOG2AVCgtGIpDNP&personnel_id=5&services_booth_id=1

我的表单如下:

                            <li class="list-group-item">
                                <form action="/booth_personnel/create" method="post">
                                {{ csrf_field() }}
                                  <div class="input-group">
                                      <select class="form-control" name="personnel_id">
                                        @foreach($personnel as $person)    
                                        <option value="{{$person->id}}">{{$person->full_name}}</option>
                                        @endforeach
                                      </select>
                                      <input type="hidden" value="{{$service->id}}" name="services_booth_id">            
                                      <span class="input-group-btn">
                                        <button class="btn btn-default" type="submit" tabindex="-1"><span aria-hidden="true"></span>Add Personnel</button>
                                      </span>
                                    </div>

                                </form>
                            </li>   

这是我的路线:

Route::post('/booth_personnel/create', 'BoothPersonnelController@store');

我的控制器:

   public function store(Request $request)
{
    $this->validate($request,[
        'personnel_id' => 'required',
        'services_booth_id' => 'required',
    ]);

    $result = BoothPersonnel::addNew($request);
    if($result === true) {
        $message = "Successfully added to database.";
        return redirect()->back()->with('formSuccess', $message);
    } else {
        return back()->withErrors($result);
    }

}

我的模特:

   public static function addNew($request){
    $result = array();
    DB::beginTransaction();

    try {
        $current_time = Carbon::now('Asia/Manila');
        DB::insert("INSERT INTO `tbl_booth_personnels`
            (
                `personnel_id`, `services_booth_id`, `created_at` 
            ) 
            VALUES 
            (?, ?, ?)",
                   [
                       $request->input('personnel_id'),
                       $request->input('services_booth_id'),
                       $current_time
                   ]
                  );

        DB::commit();
        $result = true;
    } catch (\Exception $e) {
        DB::rollback();
        $result = $e->getMessage();
    }

    return $result;
}

注意:我循环播放我在视图中有一个多表单,它在foreach方法中。它只发生在第一个循环上,下一个插入就好了。

2 个答案:

答案 0 :(得分:0)

只需将此{{csrf_field()}}更改为此{{Form :: token()}}

答案 1 :(得分:0)

事实证明我在循环外面有另一个表单标记换行。 我删除了它,现在一切正常。