dimanche 22 novembre 2015

Laravel 5 Validation - Return as json/ajax in bootstrap modal

I am creating a form with the modal fade. I intend to press a button to open me the form with the modal fade and the user to insert the contents if there is an error appear json / ajax so there is no refresh. Only at the end is that I intend to refresh. Finally when I click the button appears to me always array errors {"errors": {"title": ["The title field is required."]}} Can anyone help me?

form

                    <div class="col-lg-3 col-xs-6">
                        <!-- small box -->
                        <div class="small-box bg-red">
                            <a style="cursor: pointer;" class="small-box-footer" data-toggle="modal" data-target="#Portfolio">
                                <div class="inner">
                                    <h3 style="text-align: center; padding: 30px; margin: 0px;">
                                        Branding
                                    </h3>
                                </div>
                                Acrescentar portfolio <i class="fa fa-arrow-circle-right"></i>
                            </a>
                        </div>
                    </div><!-- ./col -->
                </div><!-- /.row -->


                <!-- MODELOS PORTFOLIO -->

                <!-- Design -->
                 <div class="modal fade" id="Portfolio" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                  <div class="modal-dialog">
                    <div class="modal-content">
                      <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                        <h3 class="modal-title" id="myModalLabel">Acrescentar portfolio</h3>
                      </div>
                      <div class="modal-body">
                        {!! Form::open(array('url' => 'backend/portfolio', 'name' => 'InserirPortfolio', 'role' => 'form', 'files'=> true))!!}

                        <input type="hidden" name="id" value="{{Auth::user()->id}}">

                        <div class="row">
                            <div class="col-md-12 col-lg-12">
                                @if (count($errors) > 0)
                                    <div class="alert alert-danger" style="margin-top: 0px;">
                                        <strong>Ups!</strong> Existe algum problema com o formulário.<br><br>
                                        <ul>
                                            @foreach ($errors->all() as $error)
                                                <li>{{ $error }}</li>
                                            @endforeach
                                        </ul>
                                    </div>
                                @endif
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-12 col-lg-12">
                                @if (Session::has('portfolio'))
                                    <div class="alert alert-success" style="margin-top: 0px;">
                                        {{ Session::get('porfolio') }}
                                    </div>
                                @endif
                            </div>
                        </div>        
                        <div class="row" style="margin-bottom: 20px;">
                            <div class="col-md-3 col-lg-3">
                                {!! Form::label('titulo', 'Titulo', ['class' => 'label_perfil']) !!}
                            </div>
                            <div class="col-md-9 col-lg-9">
                                {!! Form::text('titulo', '', ['class' => 'form-control input-md' , 'placeholder' => 'Titulo']) !!}
                            </div>
                        </div>
                        <div class="row" style="margin-bottom: 20px;">
                            <div class="col-md-3 col-lg-3">
                                {!! Form::label('imagem', 'Imagem', ['class' => 'label_perfil']) !!}
                            </div>
                            <div class="col-md-9 col-lg-9">
                                {!! Form::file('imagem', array('multiple'=>true),['class' => 'input-file']) !!}
                            </div>
                        </div>   
                      </div>
                      <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button>
                        {!! Form::submit('Acrescentar portfolio', ['class' => 'btn btn-primary']) !!}
                      </div>
                    {!! Form::close() !!}
                    </div>
                  </div>
                </div>

Controller

    public function InserirPortfolio() { 
        $portfolio = Input::except('_token'); 
        $validation = Validator::make($portfolio, Portfolio::$portfolio); 
        if ($validation->passes()) {
            $user = Portfolio::insert($portfolio); 
            Session::flash('portfolio', 'Redes sociais editadas com sucesso'); 
            return Redirect::to('backend/portfolio'); 
        } else {
            return Response::json(array('errors' => $validation->errors()->toArray()));
        }
    }



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire