Controller 中的 Laravel 空 POST 数据

标签 laravel controller null

前几天开始在laracasts上学习laravel,遇到一个小问题。

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

表格:

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

Controller :

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

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

最佳答案

更新您的存储方法并像这样传递请求参数:

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

更新:

The Illuminate\Http\Request

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

Symfony\Component\HttpFoundation\Request

如果您的 Controller 方法还需要来自路由参数的输入,您应该在其他依赖项之后列出您的路由参数。例如,如果您的路线定义如下:

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

您仍然可以通过如下定义您的 Controller 方法来对 Illuminate\Http\Request 进行类型提示并访问您的路由参数 id:

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

所以,简单来说,为了获取表单参数,你必须将一个变量($request)传递给你的 Controller ,以便它可以访问(假设 laravel 将这些表单参数存储在 $request 变量中,这样你就可以轻松将其传递给 Controller ​​或不传递)。 希望它能解决问题:)

关于 Controller 中的 Laravel 空 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47077857/

相关文章:

c# - ViewResult同时存在于 "System.Web.Mvc.dll"和 "System.Web.Mvc.dll"中

ios - 如何在xcode中从sqlite获取NULL

javascript - Laravel 无法上传图片

controller - JavaFX Controller 到 Controller - 访问 UI 控件

javascript - 陷入 Ember.js 将计算属性移交给模板的困境

null - 空字段上的GetHashCode吗?

wpf - 当由于空值而无法评估绑定(bind)时,使用默认值

php - 如何使用 Laravel 5 登录用户

php - 具有不同结构和布局的页面模块?

Laravel 集合 : return only relationship and key