Форма в Laravel не отправляет данные - PullRequest
0 голосов
/ 24 июня 2018

Я пытаюсь создать форму с кратным вводом даты, я копирую модель из шаблона блейд-регистра / логина, но она не работает, вот что я делаю в своем шаблоне:

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

EDIT:

Вот мой контроллер

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 голосов
/ 24 июня 2018

Когда вы отправляете 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);
}

Не забудьте импортировать класс Illuminate \ Http \ Request при использовании Request

0 голосов
/ 24 июня 2018

Вы можете получить доступ к отправленным данным, используя $request. Документы хорошо описывают это .В вашем случае:

use Illuminate\Http\Request;

public function createDispo(Request $request){
    $disponibilite = new Disponibilite();
    $disponibilite->date_debut = $request->date_debut;
    $disponibilite->date_fin = $request->date_fin;
    // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...