Я хочу отправить две формы в Laravel 5.8 - PullRequest
0 голосов
/ 10 октября 2019

, когда первая форма действительна, затем откройте вторую форму. И если вторая форма также действительна, то отправьте обе. Вторая форма генерируется с данными первой формы.

  1. EventController.php

    открытая функция create () {

    $categories = Category::with('subcategory')->where('is_active', 1)->get();
    $seat_types = SeatType::where('is_active', 1)->get();
    return view('admin.event.create', compact('categories', 'seat_types'));
    

    }

    хранилище открытых функций (запрос StoreEventRequest $) {

    $event_data = $request->all();
    $s_date = date('Y-m-d H:i:s', strtotime($request->start_time));
    $e_date = date('Y-m-d H:i:s', strtotime($request->end_time));
    $period = CarbonPeriod::create($s_date, $e_date);
    $date_range = [];
    $seat_types = SeatType::where('is_active', 1)->get();
    foreach($period as $date)
    {
        $date_range[] = date('d M Y H:i:s', strtotime($date));
    }
    
    return view('admin.event.createSeat', compact('date_range'));
    

    }
    открытая функция storeSeat (StoreEventSeatRequest $ request) {

    dd($request->all());    
    

    }

2.event файл блейда: - create.blade.php

<form action="{{ route('event.store') }}" >
..
</form>

3. Файл блейд-посадочного места: - createSeat.blade.php

<form action="{{ route('event.seat.store') }}">
..
</form>```

4.Request validation file of event :- StoreEventRequest.php

public function rules()
    {


        return [
            'title' => 'required|max:100',
            'category_id' => 'required',
            'sub_category.*' => 'required',
            'start_time' => 'required|unique:events',
            'end_time' => 'required|unique:events',
            'type' => 'required',
            'address' => 'required|max:200',
            'image.*' => 'mimes:jpeg,png,jpg,gif,svg',
            'image' => 'required|array|min:2',
            'banner' => 'required|image|mimes:jpeg,png,jpg,gif,svg',
        ];
    }

5.Request validation file of eventseat :- StoreEventSeatRequest.php

public function rules()

    {
        return [
            'seat_type.*' => 'required',
            'quantity.*' => 'required|numeric|gt:0',
        ];
    }

1 Ответ

1 голос
/ 10 октября 2019

Если javascript не ваша вещь, придерживайтесь традиционных форм. Это вполне возможно сделать, используя только бэкэнд-обработку.

Form1 -> сбор данных и POST на сервер. Проверьте данные form1 и сохраните поля в массиве в пользовательском сеансе перенаправления в форму 2

Form2 -> собирать данные и POST на сервер. Проверьте данные формы 2.

Сохранить из сеанса, данные шага 1, шага 2 из текущего запроса.

Сложно, если пользователю нужно нажать на любой странице назад. Вам нужно посмотреть сеанс и посмотреть, есть ли у вас в форме сеанса данные этого шага. Затем вы можете передать это в представление, чтобы заполнить форму более ранними данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...