Laravel在控制器中清空POST数据

时间:2017-11-02 14:34:16

标签: laravel controller null

几天前,我开始学习拉拉斯特的laravel,我遇到了一个小问题。

当我使用post方法提交表单数据并想要在我的控制器中访问此数据时,我有一个空值。

形式:

<form method="POST" action="{{ url('/costs')}}">

{{ csrf_field() }}

  <div class="form-group">
    <label for="cost-title">Cost title</label>
    <input type="text" class="form-control" id="cost-title" name="title" placeholder="Enter cost title">
  </div>

  <div class="form-group">
    <label for="cost-price">Price</label>
    <input type="text" class="form-control" id="cost-price" name="price" placeholder="Enter price">
  </div>

  <button type="submit" class="btn btn-primary">Submit</button>
</form>

控制器:

<?php

namespace App\Http\Controllers;

use App\Cost;

class CostsController extends Controller
{
    public function index(){

        $costs = Cost::all();

        return view('costs.index', compact('costs'));

    }

    public function show(Cost $cost){

        return view('costs.show', compact('cost'));

    }

    public function create(Cost $cost){

        return view('costs.create');

    }

    public function store(){
        dd(request()->all);
    }
}

在我的路线中,我使用post方法触发@store:

Route::get('/costs', 'CostsController@index');
Route::get('/cost/{cost}', 'CostsController@show');
Route::get('/costs/create', 'CostsController@create');

Route::post('/costs', 'CostsController@store');

当我试图转储并死亡时:

public function store(){
        dd(request()->all);
    }

我有一个空值。你能解释一下为什么我在这里看不到任何数据吗?

1 个答案:

答案 0 :(得分:2)

更新您的商店方法并传递一个Request参数,如下所示:

 public function store (Request $request)
{
 $input = $request->all();
 dd($input);
}

更新

The Illuminate\Http\Request

实例提供了各种方法来检查应用程序的HTTP请求并扩展

Symfony\Component\HttpFoundation\Request

如果您的控制器方法也期望来自路由参数的输入,则应在其他依赖项之后列出路由参数。例如,如果您的路线定义如下:

Route::put('user/{id}', 'UserController@update');

您仍然可以通过定义控制器方法键入提示Illuminate \ Http \ Request并访问您的路由参数ID,如下所示:

public function update(Request $request, $id)
{
    //
}

因此,简单来说,获取表单参数就必须将变量($ request)传递给控制器​​,以便可以访问它(只需说laravel将这些表单参数存储在$ request变量中,这样就可以了很容易将它传递给控制器​​或不。) 希望它能清理一切:)