php - LARAVEL Post 方法在地址栏上显示 token

标签 php mysql laravel

我尝试使用 post 方法将数据插入数据库,但它没有插入,而是什么都不做,并且 token 出现在我的网络浏览器的地址栏上。

这就是显示的内容:

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

我的 Controller :

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

注意:我正在循环,我的 View 中有一个多重表单,它位于 foreach 方法中。它只发生在第一个循环上,下一个循环插入就好了。

最佳答案

事实证明,我在循环之外还有另一个表单标签。 我删除了它,现在一切正常。

关于php - LARAVEL Post 方法在地址栏上显示 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48919496/

相关文章:

php - new self(); 是什么意思?在 PHP 中是什么意思?

MySQL非常长的数字数据类型

php - Laravel - 通过 ajax 加载带有自定义 id 的帖子

php - Laravel Session 与原生 PHP Session 性能差异

php - Wordpress 添加按钮链接

javascript - php 未收到 Ajax 帖子

javascript - 保持 Web Socket 服务器处于事件状态

php - 出现 'update' 按钮问题

Mysql - 计算行数,直到达到第一个不同的值

laravel - 在 laravel 中通过 id 更新数据透视表