Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Используя Laravel 4, как мне пометить переключатель как проверенный, если ключ сеанса является указанным значением?

Автор вопроса: zeckdudeОтветов: 2

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

Вот что я придумал:

Просмотр: Choose-listing-type.blade.php

<div class="form-group">
  <?php $checked_status = Session::get('listing_form_data.type') === 'property' ? true : false; ?>
  {{ Form::radio('type', 'property', $checked_status) }} Create Property Listing
</div>

<div class="form-group">
  <?php $checked_status = Session::get('listing_form_data.type') === 'room' ? true : false; ?>
  {{ Form::radio('type', 'room', $checked_status) }} Create Room Listing
</div>

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

Используя Laravel 4, как лучше всего пометить радиокнопку как проверенную в зависимости от значения указанного сеансового ключа?

phpformslaravelradio-buttonblade

Ответы

Ответ 1 · рейтинг 2 · lukasgeiter

Поскольку вы упомянули, что хотели сделать это в контроллере:

$type = Session::get('listing_form_data.type');
return View::make('view')->with('type', $type);

Вид:

{{ Form::radio('type', 'property', $type === 'property') }} Create Property Listing
{{ Form::radio('type', 'room', $type === 'room') }} Create Room Listing

Или даже:

$type = Session::get('listing_form_data.type');
$isProperty = ($type === 'property');
$isRoom = ($type === 'room');
return View::make('view')->with(compact('isProperty', 'isRoom'));

Вид:

{{ Form::radio('type', 'property', $isProperty) }} Create Property Listing
{{ Form::radio('type', 'room', $isRoom) }} Create Room Listing

Ответ 2 · рейтинг 2 · Jesse Schutt

Почему бы вам просто не поместить условное право в хелпер формы, например:

<div class="form-group">
  {{ Form::radio('type', 'room', (Session::get('listing_form_data.type') === 'room') ? true : false) }} Create Room Listing
</div>

Лично я не вижу ничего плохого в проверке настроек сеанса из представления...

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы