Laravel中的表单不发送数据

时间:2018-06-24 14:39:51

标签: laravel forms post

我尝试制作一个具有多个日期输入的表单,我从注册/登录刀片模板复制了模型,但是它不起作用,这是我在模板中所做的事情:

<form method="POST" action="{{ route('createDispo') }}">
    @csrf

    <div class="form-group row">
        <label for="date_debut" class="col-md-4 col-form-label text-md-right">Date de début</label>

        <div class="col-md-6">
            <input type="date" name="date_debut" class="form-control" required>
        </div>
    </div>
    <div class="form-group row">
        <label for="date_debut_heure" class="col-md-4 col-form-label text-md-right">Heure de début</label>

        <div class="col-md-6">
            <input type="date" name="date_debut_heure" class="form-control" required>
        </div>
    </div>
    <div class="form-group row">
        <label for="date_fin" class="col-md-4 col-form-label text-md-right">Date de fin</label>

        <div class="col-md-6">
            <input type="date" name="date_fin" class="form-control" required>
        </div>
    </div>
    <div class="form-group row">
        <label for="date_fin_heurev" class="col-md-4 col-form-label text-md-right">Heure de fin</label>

        <div class="col-md-6">
            <input type="date" name="date_fin_heure" class="form-control" required>
        </div>
    </div>

    <div class="form-group row mb-0">
        <div class="col-md-6 offset-md-4">
            <button type="submit" class="btn btn-primary">
                Ajouter
            </button>
        </div>
    </div>
</form>

但是表单不会像注册或登录那样返回$data数组,而是仅返回第一个值(date_debut而不是数组,如何使用Laravel正确地形成表单?

编辑:

这是我的控制人

public function createDispo(array $data){
    $disponibilite = new Disponibilite();
    $disponibilite->date_debut = $data["date_debut"];
    $disponibilite->date_fin = $data["date_fin"];
    //$user->disponibilites()->save($disponibilite);
}

问题是我没有收到这个“数据”数组,而只有一个值(第一个日期选择器)

2 个答案:

答案 0 :(得分:1)

您可以使用$request访问提交的数据。 The docs describe it well。就您而言:

use Illuminate\Http\Request;

public function createDispo(Request $request){
    $disponibilite = new Disponibilite();
    $disponibilite->date_debut = $request->date_debut;
    $disponibilite->date_fin = $request->date_fin;
    // ...
}

答案 1 :(得分:0)

当您以这种形式发送HTTP请求时,应获取此信息的方法应接收Illuminate / Http / Request类。

控制器登录的方式有所不同,因为控制器在验证后将$ request-> all()(这是一个数组)发送给方法登录。

所以您要做的就是更改:

public function createDispo(array $data){

收件人

public function createDispo(Request $data){

或更与变量保持一致:

public function createDispo(Request $request){

然后您可以通过以下方式访问数据:

public function createDispo(Request $request){

    $disponibilite = new Disponibilite();
    $disponibilite->date_debut = $request->date_debut;
    $disponibilite->date_fin = $request->date_fin;
    //$user->disponibilites()->save($disponibilite);
}

记住在使用Request时要导入Illuminate \ Http \ Request类