Сохраните в столбце «статус» таблицы регистрации значение «C», если это бесплатная регистрация, но «I», если это платная регистрация. - PullRequest
0 голосов
/ 04 июня 2018

У меня есть страница сведений о конференции, где пользователь может выбрать в форме количество доступных билетов на конференцию, которую он хочет.Конференция может иметь 1 или несколько билетов, а некоторые могут быть бесплатными, другие платными.Эта форма для пользователя, чтобы выбрать билеты, которые он хочет, имеет следующее действие:

<form method="post" action="{{route('conferences.storeQuantities', ['id' => $conference->id, 'slug' => $conference->slug])}}">
...
</form>

Таким образом, когда пользователь нажимает «Далее», код переходит в RegistrationController storeQuantities (), этот метод сохраняет выбранные билеты (количество каждого билета, итого и т. д.) и некоторая другая некоторая информация в сеансе и возвращает пользователя по маршруту «conference.registration»:

Сводка storeQuantities ():

public function storeQuantities(Request $request, $id, $slug = null)
    {
        ....
        $selectedRtypes[$rtype->name]['quantity'] = $quantity;
        $selectedRtypes[$rtype->name]['price'] = $price;
        $selectedRtypes[$rtype->name]['subtotal'] = $price * $quantity;
        $total += $selectedRtypes[$rtype->name]['subtotal'];
        $selectedRtypes[$rtype->name]['total'] = $total;

        Session::put('selectedRtypes', $selectedRtypes);
        return redirect(route('conferences.registration', ['id' => $id, 'slug' => $slug]))->with('total', $total);
    }

Итак, код отправляется на маршрут:

Route::get('/conference/{id}/{slug?}/registration', [
    'uses' => 'RegistrationController@displayRegistrationPage',
    'as'   =>'conferences.registration'
]);

Итак, вызывается функция displayRegistrationPage, которая получает значения в сеансе и перенаправляет пользователя на страницу регистрации:

 public function displayRegistrationPage(Request $request, $id, $slug = null)
    {

    ...
    $selectedRtypes = Session::get('selectedRtypes');
    $allParticipants = Session::get('allParticipants');

    return view('conferences.registration',
    ['selectedRtypes' => $selectedRtypes, 'allParticipants' => $allParticipants, 'customQuestions' => $customQuestions, 'id' => $id,
        'slug' => $slug]);
    }

Так что теперь страница регистрации представлена ​​пользователю.Здесь есть форма для регистрации пользователя в конференции.Форма выглядит так:

<form method="post" action="{{route('conferences.storeRegistration', ['id' => $id, 'slug' => $slug])}}">
...
</form>

Сомнение: Когда форма отправляется, в этом storeRegistration () я хочу сохранить в столбце состояния таблицы регистрации значение «C»(завершено), если общая регистрационная цена равна «0», но если «> 0», я хочу сохранить ее как «I» (не полностью).

Знаете ли вы, как этого можно добиться надлежащим образом?

public function storeRegistration(Request $request, $id, $slug = null, Validator $validator)
{
...
if ($validator->passes()) {
    $registration = Registration::create([
        'conference_id' => $id,
        'main_participant_id' => $user->id,
        'status' => 'C',   // 'C' if free 'I' if paid
    ]);
    ...
}

1 Ответ

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

Вы можете использовать условное условие для проверки типа состояния в вашем массиве, используя общее, если задано следующее утверждение:

$registration = Registration::create([
        'conference_id' => $id,
        'main_participant_id' => $user->id,
        'status' => ($regprice < 0) ? 'C' : 'I',   // 'C' if free 'I' if paid
    ]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...