Как правильно хранить необходимую информацию для регистрации пользователя и других участников конгресса? (сценарий 1 работает, а сценарии 2 и 3 - нет)

У меня есть регистрационная форма для регистрации пользователя на конгрессе ниже. Существует 4 различных сценария регистрации. Таким образом, регистрационная форма должна обрабатывать эти 4 различных сценария. Но он не работает, работает только сценарий 1.

Вы знаете, как реализовать этот сценарий?

Сценарий 1: (единственный сценарий, который работает нормально)

  • есть два типа билетов на конгресс: «билет типа 1» и «тип билета 2».
  • у типа билета «tt1» есть настраиваемый вопрос, связанный с «Какой у вас телефон?», у типа билета «tt2» нет связанных настраиваемых вопросов
  • все участники равны «1», что означает, что необходимо собрать информацию (имя и фамилию) каждого участника
  • Схема для этого сценария: Как правильно хранить необходимую информацию для регистрации пользователя и других участников конгресса? (сценарий 1 работает, а сценарии 2 и 3 - нет)

Сценарий 2:

  • на конгресс есть два типа билетов: «tt1» и «tt2»
  • Типы билетов "tt1" и "tt2" не связаны ни с одним настраиваемым вопросом
  • все участники равны «1», что означает, что необходимо собрать информацию о каждом участнике.
  • Схема для этого сценария:

Как правильно хранить необходимую информацию для регистрации пользователя и других участников конгресса? (сценарий 1 работает, а сценарии 2 и 3 - нет)

Сценарий 3:

  • на конгресс есть два типа билетов: «tt1» и «tt2»
  • у типа билета «tt1» есть настраиваемый вопрос, связанный с «Какой у вас телефон?», у типа билета «tt2» нет связанных настраиваемых вопросов
  • все участники равны «0», что означает, что нет необходимости собирать информацию (имя и фамилию) каждого участника
  • Схема для этого сценария: Как правильно хранить необходимую информацию для регистрации пользователя и других участников конгресса? (сценарий 1 работает, а сценарии 2 и 3 - нет)

Сценарий 4:

  • на конгресс есть два типа билетов: «tt1» и «tt2»
  • Типы билетов "tt1" и "tt2" не связаны ни с одним настраиваемым вопросом
  • все участники равны «0», что означает, что нет необходимости собирать информацию (имя и фамилию) каждого участника
  • Схема для этого сценария: Как правильно хранить необходимую информацию для регистрации пользователя и других участников конгресса? (сценарий 1 работает, а сценарии 2 и 3 - нет)

Выбранные билеты с предыдущей страницы доступны в переменной "$selectedTypes".

// регистрационная форма на странице registration.blade.php

      <form method = "post" id = "step1form" action = "">
    {{csrf_field()}}
    @if (!empty($allParticipants))
        @if ($allParticipants == 1)
            <p>Please fill in all fields. Your tickets will be sent to
                p{{ (\Auth::check()) ? Auth::user()->email : old('email')}}.</p>

            @foreach($selectedTypes as $k => $selectedType)
                @foreach(range(1,$selectedType['quantity']) as $val)

                    <h6>Participant - {{$val}}  - {{$k}}</h6>
                    <div class = "form-check">
                        <input class = "form-check-input" type = "radio" name = "payment_method" value = "referencias">
                        <label class = "form-check-label d-flex align-items-center" for = "exampleRadios1">
                            <span class = "mr-auto">Fill the following fields with the authenticated user information.</span>
                        </label>
                    </div>
                    <div class = "form-group font-size-sm">
                        <label for = "participant_name" class = "text-gray">Name</label>
                        <input type = "text" name = "participant_name[]" required class = "form-control" value = "">
                    </div>
                    <div class = "form-group font-size-sm">
                        <label for = "participant_surname" class = "text-gray">Surname</label>
                        <input type = "text" required class = "form-control" name = "participant_surname[]" value = "">
                    </div>
                    <input type = "hidden" name = "ttypes[]" value = "{{ $selectedType['id'] }}"/>
                    @foreach($selectedType['questions'] as $customQuestion)
                        <div class = "form-group">
                            <label for = "participant_question">{{$customQuestion->question}}</label>
                            <input type = "text"
                                   @if ($customQuestion->pivot->required == "1") required @endif
                                   class = "form-control" name = "participant_question[]">
                            <input type = "hidden" name = "participant_question_required[]"
                                   value = "{{ $customQuestion->pivot->required }}">
                            <input type = "hidden" value = "{{ $customQuestion->id }}" name = "participant_question_id[]"/>
                        </div>
                    @endforeach
                @endforeach
            @endforeach
            @else
                <p>Its not necessary aditional info. Your tickets will be sent to {{ (\Auth::check()) ? Auth::user()->email : old('email')}}.</p>

            @endif
        @endif

    <input type = "submit" href = "#step2"
           id = "goToStep2Free" class = "btn btn-primary btn float-right next-step" value = "Go to step 2"/>
</form>

// registration.blade.php полный метод регистрации пользователя в конгрессе

public function StoreUserInfo(Request $request, $id, $slug = null, Validator $validator){
    $allParticipants = Congress::where('id', $id)->first()->all_participants;
    $user = Auth::user();

    if ($allParticipants){
        $rules = [
            'participant_name.*' => 'required|max:255|string',
            'participant_surname.*' => 'required|max:255|string',
        ];

        $messages = [
            'participant_question.*.required' => 'The participant is required'
        ];

        foreach ($request->participant_question_required as $key => $value) {
            $rule = 'string|max:255'; // I think string should come before max
            //dd($value);
            // if this was required, ie 1, prepend "required|" to the rule
            if ($value) {
                $rule = 'required|' . $rule;
            }

            // add the individual rule for this array key to the $rules array
            $rules["participant_question.{$key}"] = $rule;
        }

        $validator = Validator::make($request->all(), $rules, $messages);

        if ($validator->passes()) {
            $registration = Registration::create([
                'congress_id' => $id,
                'main_participant_id' => $user->id,
                'status' => 'C',
            ]);

            $participants = [];

            for ($i = 0; $i < count($request->participant_name); $i++)
                $participants[] = Participant::create([
                    'name' => $request->participant_name[$i],
                    'surname' => $request->participant_surname[$i],
                    'registration_id' => $registration->id,
                    'ticket_type_id' => $request->rtypes[$i]

                ]);

            for ($i = 0; $i < count($request->participant_question); $i++)
                $answer = Answer::create([
                    'question_id' => $request->participant_question_id[$i],
                    'participant_id' => $participants[$i]->id,
                    'answer' => $request->participant_question[$i],
                ]);
            }

        return response()->json([
            'success' => true,
            'message' => 'success'
        ], 200);
    }


    else {

        $messages = [
            'participant_question.*.required' => 'The participant is required'
        ];


        foreach ($request->participant_question_required as $key => $value) {
            $rule = 'string|max:255'; // I think string should come before max
            //dd($value);
            // if this was required, ie 1, prepend "required|" to the rule
            if ($value) {
                $rule = 'required|' . $rule;
            }

            // add the individual rule for this array key to the $rules array
            $rules["participant_question.{$key}"] = $rule;
        }


        $validator = Validator::make($request->all(), $rules, $messages);


        if ($validator->passes()) {

            $registration = Registration::create([
                'congress_id' => $id,
                'main_participant_id' => $user->id,
                'status' => 'C',

            ]);

            $participants = [];

            for ($i = 0; $i < count($request->participant_name); $i++)
                $participants[] = Participant::create([
                    'name' => '',
                    'surname' => '',
                    'registration_id' => $registration->id,
                    'ticket_type_id' => $request->rtypes[$i]

                ]);

            for ($i = 0; $i < count($request->participant_question); $i++)
                $answer = Answer::create([
                    'question_id' => $request->participant_question_id[$i],
                    'participant_id' => $participants[$i]->id,
                    'answer' => $request->participant_question[$i],
                ]);
        }

        return response()->json([
            'success' => true,
            'message' => 'success'
        ], 200);

    }
}

Соответствующие модели к вопросу:

class Congress extends Model
{
    // A conference has many ticket types
    public function ticketTypes(){
        return $this->hasMany('App\TicketType', 'congress_id');
    }

    public function registrations(){
        return $this->hasMany('App\Registration', 'congress_id');
    }
}

// RegistrationModel
class Registration extends Model
{
    // a registration has one user that do the registration (main_participant_id)
    public function customer(){
        return $this->belongsTo('App\User');
    }
    public function congress(){
        return $this->belongsTo('App\Congress');
    }
}

class TicketType extends Model
{
    public function congress(){
        return $this->belongsTo('App\Congress');
    }
}

class Question extends Model
{
    public function registration_type(){
        return $this->belongsToMany('App\RegistrationType', 'ticket_type_questions')
            ->withPivot('required');
    }
}

class Answer extends Model
{
    public function question(){
        return $this->belongsTo('Question');
    }
    public function participant(){
        return $this->belongsTo('Participant');
    }
}

Диаграмма, которая показывает некоторые проблемы с кодом, который у меня есть на данный момент, это код в вопросе:

Как правильно хранить необходимую информацию для регистрации пользователя и других участников конгресса? (сценарий 1 работает, а сценарии 2 и 3 - нет)

Столбец JSON для любой дополнительной информации.

Bader 03.05.2018 04:54

Как метод $request->participant_question_required генерирует свои данные? Если в одном экземпляре это массив, а в другом - false или null, разве вам не нужно защищать цикл foreach от попыток обработки несуществующих данных?

Malovich 03.05.2018 21:44

Если при регистрации есть пользовательские вопросы «@foreach ($ selectedType ['questions'] as $ customQuestion)», тогда в storeUserInfo существует «$ request-> members_question_required», в противном случае - null, что приводит к ошибке недопустимого аргумента. Но с "if (isset ($ request-> members_question_required)) {", а затем весь код внутри этого, например, этот, если у конгресса нет связанных настраиваемых вопросов, тогда не появляется никаких ошибок, но записи не вставляются в регистрации и таблица участников.

user9659025 03.05.2018 21:47

А в форме регистрации есть "<input type = " hidden "name = " members_question_required [] ". 0 или 1, 1 означает обязательный, false означает, что не требуется.

user9659025 03.05.2018 22:32

И «обязательные» поля - это поле сводной таблицы ticket_type_questions, которое имеет такую ​​структуру: id, ticket_type_id, question_id, required.

user9659025 03.05.2018 22:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
5
334
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Прежде всего используйте select * from TABLENAME, а затем используйте функцию COUNT либо в запросе, либо используйте функцию PHP Count в файле лезвия laravel затем выполните свой код ..

на пилке

@if (count($records)>0){
   // Your Code

}

Если вы хотите сохранить более одного ticket_type для участника, вам нужно будет использовать сводную таблицу. Сводная таблица - это таблица, которая содержит только идентификаторы и связывает данные во многих отношениях.

например

participants_ticket_type table
id      ticket_type_id   participant_id
1          1               2
2          2               2

Обратите внимание, как у участника 2 есть ticket_types 1 и 2? Это отношения "многие ко многим".

Laravel обрабатывает эти отношения за вас, и вы можете найти это в их документации. https://laravel.com/docs/5.6/eloquent-relationships#many-to-many

Обычно, если вы обнаруживаете, что храните более 1 идентификатора в столбце, связь «многие ко многим» решает эту проблему.

Спасибо, но у меня уже есть эти отношения: 1 to many between Congress and Registration, 1 to many between Registration and Participant, 1 to many between TicketType and Participant.

user9659025 30.04.2018 16:32

И структура этих таблиц такая: Congress: id, name, ...; TicketType: id, congress_id, name,..; Participants: id, registration_id, ticket_type_id, name, email; Registration:id, status, congress_id.

user9659025 30.04.2018 16:32

Невозможно сохранить в таблице участников? Поскольку наличие многих ко многим между участником и типом билета не кажется правильным, потому что участник связан только с одним типом билета, но тип билета может иметь несколько участников.

user9659025 30.04.2018 16:33

Возможно, однако, вам нужно будет написать хакерский код, чтобы заставить его работать эффективно. Насколько я понимаю, вы говорите: «У участника может быть несколько типов билетов». Это заставило бы меня сказать, что вам нужна сводная таблица между member и ticket_type.

hdifen 30.04.2018 16:44

Спасибо, но участник не может иметь несколько типов билетов, участник связан только с одним типом билетов. Например, пользователь Джон может регистрироваться на конгрессе, регистрироваться с двумя участниками, самим собой и другими участниками. И для этого конгресса существует два типа билетов «tt1» и «tt2», и Джон регистрирует его в типе билета «tt1», а другой коллега - в типе билета «tt2».

user9659025 30.04.2018 17:05

Это только одна регистрация с 2 участниками, участник Джон, который является основным участником, потому что регистрация связана с типом билета «tt1», а его коллега связан с типом билета «tt2».

user9659025 30.04.2018 17:05

Хорошо, чтобы прояснить, вы говорите: «Человек, который зарегистрировался на конгрессе, может добавлять людей к регистрации»? Если это так, вы правы в том, что написали в своем вопросе, где вы просто добавляете несколько человек в таблицу участников с нулями. Единственная проблема, с которой я столкнулся, заключается в том, что если тот же пользователь захочет создать еще один registration, некоторые из ваших данных будут дублироваться, и для решения этой проблемы вам понадобится сводная таблица, аналогичная ответу. Я недостаточно хорошо знаю ваш бизнес-кейс, чтобы сказать вам, стоит ли вам об этом беспокоиться :).

hdifen 30.04.2018 17:29

В идеале у вас должен быть создатель регистрации и участники за разными столами. Это позволит одному и тому же пользователю создать несколько регистраций. например Регистрация содержит creator_id, а затем сводную таблицу между registration и participants.

hdifen 30.04.2018 17:30

Спасибо, создатель регистрации и участники находятся в разных таблицах. Создатель регистрации находится в таблице регистрации со столбцом «main_participant_id», а участники находятся в таблице участников со столбцами (id, registration_id, ticket_type_id, имя и фамилия).

user9659025 30.04.2018 19:36

Пользователь может выполнить регистрацию в конференции, а затем выполнить еще одну регистрацию в той же конференции. Но это не должно быть проблемой, потому что у каждой регистрации другой идентификатор. Также пользователь может при одной регистрации на конгресс зарегистрировать много участников, но у каждого участника будет свой идентификатор, так что это тоже не должно быть проблемой, не так ли?

user9659025 30.04.2018 19:37

Я не понимаю, зачем нужна сводная таблица, потому что сводная таблица предназначена только для многих, верно? Но я не понимаю, что нужно многим многим в этом контексте.

user9659025 30.04.2018 19:41

Это чисто для многоразового использования. Я недостаточно хорошо знаю ваше экономическое обоснование, чтобы знать, что может произойти, например что, если вы хотите, чтобы участник участвовал в нескольких регистрациях. Я думаю, что на данный момент вы правы, что в вашей таблице участников есть несколько строк для каждой регистрации. Возможно, добавьте столбец is_creator_attending в регистрационную таблицу, чтобы вам не приходилось снова помещать их в таблицу участников.

hdifen 30.04.2018 20:04

Спасибо, пользователь может выполнить несколько регистраций на конгрессе, если он хочет, поэтому в таблице регистраций может быть несколько "congress_id" и "main_participant_id" с одинаковыми идентификаторами, потому что пользователь, который выполняет регистрацию, может выполнять несколько регистраций на одном и том же конгрессе. , есть какая-то проблема?

user9659025 01.05.2018 01:50

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

user9659025 01.05.2018 02:02

Я дополняю вопрос моделями, чтобы лучше объяснить контекст.

user9659025 01.05.2018 02:02

Пользователь, который выполняет регистрацию, то есть аутентифицированный пользователь, должен храниться в таблице регистрации только с main_participant_id, в таблице участников не должно храниться ничего о пользователе, который выполняет регистрацию. Но пользователь, который выполняет регистрацию, может быть участником, поэтому в таблице участников можно указать имя и фамилию аутентифицированного пользователя, который выполнил регистрацию, если он является участником конгресса.

user9659025 01.05.2018 21:40

Хорошо, так что у вас много всего происходит, и на самом деле трудно вытащить свой «вопрос». Я бы порекомендовал сделать большой шаг назад и выяснить, в чем именно заключаются ваши проблемы, и разбить их на более управляемые части.

hdifen 03.05.2018 03:07
Ответ принят как подходящий

Я вижу две вещи

1.- Форма ничего не отправляет, когда $ allParticipants == 0, может быть, что-то вроде:

    <form method = "post" id = "step1form" action = "">
    {{csrf_field()}}
    @if (!is_null($allParticipants) && is_int($allParticipants))
        @if ($allParticipants == 1)   
            <p>Please fill in all fields. Your tickets will be sent to
                p{{ (\Auth::check()) ? Auth::user()->email : old('email')}}.</p>
        @else
            <p>Its not necessary aditional info. Your tickets will be sent to {{ (\Auth::check()) ? Auth::user()->email : old('email')}}.</p>
        @endif

        @foreach($selectedTypes as $selectedType)
            @foreach(range(1,$selectedType['quantity']) as $test)
                <h6>Participant - 1 - {{$test}}</h6>
                <div class = "form-check">
                    <input class = "form-check-input" type = "radio" name = "payment_method" value = "referencias">
                    <label class = "form-check-label d-flex align-items-center" for = "exampleRadios1">
                        <span class = "mr-auto">Fill the following fields with the authenticated user information.</span>
                    </label>
                </div>
                @if ($allParticipants == 1)
                    <div class = "form-group font-size-sm">
                        <label for = "participant_name" class = "text-gray">Name</label>
                        <input type = "text" name = "participant_name[]" required class = "form-control" value = "">
                    </div>
                    <div class = "form-group font-size-sm">
                        <label for = "participant_surname" class = "text-gray">Surname</label>
                        <input type = "text" required class = "form-control" name = "participant_surname[]" value = "">
                    </div>
                   @foreach($selectedType['questions'] as $customQuestion)
                    <div class = "form-group">
                        <label for = "participant_question">{{$customQuestion->question}}</label>
                        <input type = "text"
                                @if ($customQuestion->pivot->required == "1") required @endif
                                class = "form-control" name = "participant_question[]">
                        <input type = "hidden" name = "participant_question_required[]"
                                value = "{{ $customQuestion->pivot->required }}">
                        <input type = "hidden" value = "{{ $customQuestion->id }}" name = "participant_question_id[]"/>
                    </div>
                   @endforeach
                @else
                    <input type = "hidden" value = "foo" name = "participant_name[]"/>
                    <input type = "hidden" value = "bar" name = "participant_surname[]"/>
                @endif
                <input type = "hidden" name = "ttypes[]" value = "{{ $selectedType['id'] }}"/>                
            @endforeach
            @if ($allParticipants == 0) 
              @foreach($selectedType['questions'] as $customQuestion)
                    <div class = "form-group">
                        <label for = "participant_question">{{$customQuestion->question}}</label>
                        <input type = "text"
                                @if ($customQuestion->pivot->required == "1") required @endif
                                class = "form-control" name = "participant_question[]">
                        <input type = "hidden" name = "participant_question_required[]"
                                value = "{{ $customQuestion->pivot->required }}">
                        <input type = "hidden" value = "{{ $customQuestion->id }}" name = "participant_question_id[]"/>
                    </div>
                @endforeach
            @endif
        @endforeach
    @endif

    <input type = "submit" href = "#step2"
            id = "goToStep2Free" class = "btn btn-primary btn float-right next-step" value = "Go to step 2"/>
    </form>

2.- Вопросы, похоже, зависят от типов заявок и являются дополнительными, функция должна это учитывать.

public function StoreUserInfo(Request $request, $id, $slug = null, Validator $validator){
    $allParticipants = Congress::where('id', $id)->first()->all_participants;
    $user = Auth::user();

    $rules = [];
    $messages = [];

    if (isset($request->participant_question_required)) {
        $messages = [
            'participant_question.*.required' => 'The participant is required'
        ];

        foreach ($request->participant_question_required as $key => $value) {
            $rule = 'string|max:255'; // I think string should come before max
            //dd($value);
            // if this was required, ie 1, prepend "required|" to the rule
            if ($value) {
                $rule = 'required|' . $rule;
            }

            // add the individual rule for this array key to the $rules array
            $rules["participant_question.{$key}"] = $rule;
        }
    }

    if ($allParticipants){
        $rules = [
            'participant_name.*' => 'required|max:255|string',
            'participant_surname.*' => 'required|max:255|string',
        ];
    }

    $validator = Validator::make($request->all(), $rules, $messages);

    if ($validator->passes()) {
        $registration = Registration::create([
            'congress_id' => $id,
            'main_participant_id' => $user->id,
            'status' => 'C',
        ]);

        $participants = [];
        for ($i = 0; $i < count($request->participant_name); $i++) {
            $name = ($allParticipants) ? $request->participant_name[$i] : '';
            $surname = ($allParticipants) ? $request->participant_surname[$i] : '';
            $participants[] = Participant::create([
                'name' => $name,
                'surname' => $surname,
                'registration_id' => $registration->id,
                'ticket_type_id' => $request->rtypes[$i]

            ]);
        }

        if (isset($request->participant_question))
            for ($i = 0; $i < count($request->participant_question); $i++)
                    $answer = Answer::create([
                        'question_id' => $request->participant_question_id[$i],
                        'participant_id' => $participants[$i]->id,
                        'answer' => $request->participant_question[$i],
                    ]);
    }

    return response()->json([
        'success' => true,
        'message' => 'success'
    ], 200);
}

Надеюсь, что это работает! С Уважением

Спасибо, я тестирую первый, но когда all_participants имеет значение «0» в регистрационной форме, не появляется никакого сообщения, это не появляется »<p> Это необязательная дополнительная информация. Ваши билеты будут отправлены на адрес {{(\ Auth :: check ( ))? Auth :: user () -> email: old ('email')}}. </p> ". Вы знаете, почему?

user9659025 04.05.2018 21:51

А также зачем нужен "@else <input type = " hidden "value = " foo "name = " имя_участника [] "/> <input type = " hidden "value = " bar "name = " имя_участника [] "/> @endif "?

user9659025 04.05.2018 21:51

empty ($ allParticipants) истинно, когда $ allParticipants == 0, поэтому первое условие должно проверять @if (! is_null($allParticipants) && is_int($allParticipants)) { . Я добавил оба hiddens, потому что текстовое поле не будет отправлено, когда $ allParticipants == 0, поэтому count($request->participant_name) не будет работать в цикле for .

00Riser 04.05.2018 22:11

Спасибо, но по-прежнему не появляется "<p> Это необязательная дополнительная информация. Ваши билеты будут отправлены на {{(\ Auth :: check ())? Auth :: user () -> email: old ('email') }}. </p> ".

user9659025 04.05.2018 22:14

<form method = "post" id = "step1form" action = ""> {{csrf_field ()}} {{$ allParticipants}} показывает "0".

user9659025 04.05.2018 22:15

С помощью «@if (! Is_null ($ allParticipants) && is_int ($ allParticipants))» отображается сообщение.

user9659025 04.05.2018 22:17

Но если пользователь выбрал 2 билета, и эти билеты связаны с одним или несколькими настраиваемыми вопросами, если all_participants равно «0», пользовательский вопрос должен отображаться только один раз, чтобы пользователь, выполняющий регистрацию, мог ответить. Поскольку «all_participants» как «0» означает, что это необходимо только для сбора информации от пользователя, который выполняет регистрацию. Но это не работает, если пользователь выбирает 2 билета, с которыми связаны пользовательские вопросы, появляется пользовательский вопрос для каждого билета (для каждого участника), а не просто появляется пользовательский вопрос один раз для ответа пользователя auth.

user9659025 04.05.2018 22:19

Эта форма очень быстро становится уродливой, она должна быть сгенерирована более модульным способом, уже слишком много случаев.

00Riser 04.05.2018 22:44

Спасибо, но по-прежнему появляются два поля ввода для пользовательских вопросов, когда all_participants равно 0, например: Участник - 1 - 1 Телефон? Участник - 1 - 1 Телефон? Но должно появиться только поле ввода для пользователя, который выполняет регистрацию (аутентифицированный пользователь), чтобы войти в свой телефон.

user9659025 04.05.2018 23:05

Альтернативный вариант 1: возможно, заголовок участника должен находиться за пределами 2 @foreach, вы не можете получить $selectedType['questions'] за пределами первого цикла. Проблема в том, что вы получаете только один заголовок, без различия между участниками. Альтернативный вариант 2: не следует переключаться между типами билетов ... так как у каждого может быть свой вопрос, даже если allParticipants == 0 ... или тот же самый, что и в вашем примере.

00Riser 05.05.2018 00:01

Спасибо, но если allParticipant равен 0, то в storeUserInfo () можно использовать идентификатор пользователя, который выполняет регистрацию, аутентифицированного пользователя с $ user-> id, например «'member_id' => $ user> id,» нет? Но в регистрационной форме не знаю, как она должна работать исправно.

user9659025 05.05.2018 00:33

Вы знаете, как можно организовать регистрационную форму для реализации сценариев?

user9659025 05.05.2018 00:52

Другие вопросы по теме