Как передать ошибки проверки обратно в удаленное модальное окно

После проверки я теряю данные об ошибках Session/messagebag $ в моем модале. Я предполагаю, что это потому, что я загружаю своего посетителя формы редактирования / редактирования в модальное тело по ссылке, поэтому данные $error отправляются на страницу, которая вызывает модальное тело, но не модальное тело. Когда я отключаю модальный режим и просто загружаю посетителя / редактирую страницу напрямую, ошибки проверки корректно отображаются. Есть ли способ передать мою переменную $error в форму редактирования, отображаемую в модальном теле?

Я бы предпочел использовать AJAX, потому что в моей текущей реализации мне нужно перезагрузить модал, чтобы он выскочил / вошел. Но я не уверен, как перенести объект мешка сообщений $error из формы редактирования / данных сеанса в модальный путь таким же образом. Мне интересно, если есть способ использовать этот метод /questions/8647058/proverka-laravel-4-v-modale-nachalnoj-zagruzki чтобы заполнить мешок сообщения об ошибке $.

Главный вид

    <td>{{link_to_route('attendee.edit','',array($attendee->id), array(
            'class'=>'edit-attendee btn btn-info btn-xs glyphicon glyphicon-pencil',
            'data-title' => 'Edit Attendee'))}} 
    </td>

JQuery вызов BootstrapDialog

$(document).ready(function(){
    $('.btn.edit-attendee').click(function(e){
        e.preventDefault();
        url = $(this).attr('href');
        BootstrapDialog.show({
            title: $(this).data('title'),
            message: $('<div></div>').load(url),
            buttons: [{
                label: 'Update',
                action: function(dialogRef) {
                    $('form').submit();
                }
            }]
        });
    });
});

посетитель / редактировать вид

{{ Form::model($attendee, array('class'=>'form-horizontal', 'method' => 'PATCH', 'route' => array('attendee.update', $attendee->id))) }}
        <div class="form-group {{{ $errors->has('first_name') ? 'has-error' : '' }}}">
            <label class="col-xs-3 control-label", for="first_name">First Name</label>
            <div class="col-xs-9">
                {{ Form::text('first_name', null , array('class' => 'form-control')) }}
            </div>
          {{ $errors->first('first_name', '<span class="help-inline">:message</span>')}}
        </div>

      <div class="form-group {{{ $errors->has('special_care') ? 'has-error' : '' }}}">
            <label class="col-xs-3 control-label", for="special_care">Special Care</label>
            <div class="col-xs-9">
                {{ Form::text('special_care', null , array('class' => 'form-control')) }}
            </div>
            {{ $errors->first('age', '<span class="help-inline">:message</span>')}}
        </div>
        {{Form::submit()}}
{{ Form::close() }}

контроллер

    public function update($id)
    {
        $attendee = Attendee::findOrFail($id);



  $validator = Validator::make($data = Input::all(), Attendee::$rules);

    if ($validator->fails())
    {
        return Redirect::back()->withErrors($validator)->withInput();
    }

    $attendee->update($data);

    return Redirect::route('attendees.index');
}

После того, как я отредактировал форму, я хочу вернуться в модальное окно, чтобы отобразить ошибки проверки, но $errors не передается модальному.

1 ответ

Именованные пакеты с ошибками

Если у вас есть несколько форм на одной странице, вы можете назвать MessageBag ошибок. Это позволит вам получать сообщения об ошибках для определенной формы. Просто передайте имя в качестве второго аргумента withErrors:

return Redirect::back()->withErrors($validator, 'update')->withInput();

Затем вы можете получить доступ к названным MessageBag экземпляр из $errors переменная:

<?php echo $errors->update->first('fieldName'); ?>
Другие вопросы по тегам