Validating forms on laravel

Jorge Ortiz

Hi i getting this error When I try to validate a form, with this

$this->validate($request, [
    'documento' => 'required|unique:cliente|max:55',
]);

htmlentities() expects parameter 1 to be string, array given (View: C:\sisVentas\resources\views\ventas\cliente\create.blade.php)

this is my view please help.

@extends ('layouts.admin')
@section ('contenido')
    <div class="row">
        <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
            <h3>Nuevo Cliente</h3>
            @if (count($errors)>0)
                <div class="alert alert-danger">
                    <ul>
                        @foreach ($errors->all() as $error)
                            <li>{{$error}}</li>
                        @endforeach
                    </ul>
                </div>
            @endif
        </div>
        {!!Form::open(array('url'=>'ventas/cliente','method'=>'POST','autocomplete'=>'off', 'files'=>'true'))!!}
        {{Form::token()}}
        <div class="row">
            <div class="col-lg-6 col-sm-6 col-md-6 col-xs-12">
                <div class="form-group">
                    <label for="empresa">Empresa</label>
                    <input type="text" name="empresa" value="{{old('empresa')}}" class="form-control"
                           placeholder="Empresa...">
                </div>
            </div>
            <div class="col-lg-6 col-sm-6 col-md-6 col-xs-12">
                <div class="form-group">
                    <label for="contacto">Direccion</label>
                    <input type="text" name="direccion" value="{{old('direccion')}}" class="form-control"
                           placeholder="Direccion...">
                </div>
            </div>

            <div class="col-lg-6 col-sm-6 col-md-6 col-xs-12">
                <div class="form-group">
                    <label>Tipo Documento</label>
                    <select name="tipo_documento" class="form-control">
                        <option value="J">J</option>
                        <option value="G">G</option>
                        <option value="V">V</option>
                        <option value="E">E</option>
                    </select>
                </div>
            </div>
            <div class="col-lg-6 col-sm-6 col-md-6 col-xs-12">
                <div class="form-group">
                    <label for="Numero de documento">Numero de Documento</label>
                    <input type="text" name="documento" id="documento" required value="{{old('documento')}}"
                           onkeypress='return event.charCode >= 48 && event.charCode <= 57' class="form-control"
                           placeholder="Numero de Documento...">
                </div>
            </div>
            <div class="col-lg-6 col-sm-6 col-md-6 col-xs-12">
                <div class="form-group">
                    <label for="razon_social">Razon Social</label>
                    <input type="text" name="razon_social" value="{{old('razon_social')}}" class="form-control"
                           placeholder="Razon social...">
                </div>
            </div>
        </div>
        <div class="row">
            <div class="panel panel-primary">
                <div class="panel-body">
                    <div class="col-lg-2 col-sm-2 col-md-2 col-xs-12">
                        <div class="form-group">
                            <label for="nombre">Nombre</label>
                            <input type="text" name="pnombre" id="pnombre" class="form-control" placeholder="Nombre...">
                        </div>
                    </div>
                    <div class="col-lg-5 col-sm-5 col-md-5 col-xs-12">
                        <div class="form-group">
                            <label for="telefonos">Telefonos</label>
                            <input type="text" name="ptelefono" id="ptelefono" class="form-control"
                                   value="{{old('precio')}}" placeholder="Telefonos...">
                        </div>
                    </div>
                    <div class="col-lg-3 col-sm-3 col-md-3 col-xs-12">
                        <div class="form-group">
                            <label for="correo">Correo</label>
                            <input type="text" name="pcorreo" id="pcorreo" class="form-control"
                                   value="{{old('correo')}}" placeholder="correo...">
                        </div>
                    </div>

                    <div class="col-lg-2 col-sm-2 col-md-2 col-xs-12">
                        <div class="form-group">
                            <button type="button" id="bt_add" class="btn btn-primary">Agregar</button>
                        </div>
                    </div>

                    <div class="col-lg-8 col-sm-8 col-md-8 col-xs-12">
                        <table id="detalles" class="table table-striped table-bordered table-condensed">
                            <thead style="background-color: #ccc">
                            <th>Opciones</th>
                            <th>Nombre</th>
                            <th>Contacto</th>
                            <th>Correo</th>
                            </thead>
                            <tfoot>
                            <th></th>
                            <th></th>
                            <th></th>
                            <th></th>
                            </tfoot>
                            <tbody>

                            </tbody>
                        </table>
                        <div class="col-lg-6 col-sm-6 col-md-6 col-xs-12">
                            <div class="form-group">
                                <button class="btn btn-primary" id="guardar" type="submit">Guardar</button>
                                <button class="btn btn-danger" type="reset">Cancelar</button>
                            </div>
                        </div>
                    </div>

                {!!Form::close() !!}
                @push ('scripts') <!-- Trabajar con el script definido en el layout-->
                    <script>
                        //////////
                        $('#guardar').hide();

                        $(document).ready(function () {
                            $('#bt_add').click(function () {
                                agregar();
                            });
                        });
                        var cont = 0;
                        var total = 0;
                        subtotal = [];


                        function agregar() {
                            nombre = $('#pnombre').val();
                            telefono = $('#ptelefono').val();
                            correo = $('#pcorreo').val();
                            if (nombre != "" && telefono != "") {

                                total = total + subtotal[cont];
                                var fila = '<tr class="selected" id="fila' + cont + '"><td><button type="button" class="btn btn-warning" onclick="eliminar(' + cont + ')" >X</button></td><td><input type="text" name="nombre[]" value="' + nombre + '"</td><td><input type="text" name="telefono[]" value="' + telefono + '"</td><td><input type="text" name="correo[]" value="' + correo + '"</td></tr>';
                                cont++;
                                limpiar();
                                $('#detalles').append(fila);
                                $('#guardar').show();
                            } else {
                                alert("Error al ingresar los detalles del contacto, revise los datos del contacto ");
                            }


                        }
                        function limpiar() {
                            $('#pnombre').val("");
                            $('#ptelefono').val("");
                            $('#pcorreo').val("");


                        }

                        function eliminar(index) {
                            $("#fila" + index).remove();
                            evaluar();
                        }


                    </script>
    @endpush

@endsection

and this is my controller

<?php

namespace sisVentas\Http\Controllers;

use Illuminate\Http\Request;
use sisVentas\Http\Requests;
use sisVentas\Persona;
use sisVentas\Contacto;
use Response;
use sisVentas\Evento;
use Carbon\Carbon;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;
use sisVentas\Http\Requests\PersonaFormRequest;
use DB;

class ClienteController extends Controller
{

 public function __construct()
    {
$this->middleware('auth');
    }
    public function index(Request $request)
    {
        if ($request)
        {
            $query=trim($request->get('searchText'));
            $clientes=DB::table('cliente')
            ->where ('empresa','LIKE','%'.$query.'%')
            ->orwhere ('tipo_documento','LIKE','%'.$query.'%')
            ->orwhere ('documento','LIKE','%'.$query.'%')
            ->orwhere ('direccion','LIKE','%'.$query.'%')
            ->orwhere ('razon_social','LIKE','%'.$query.'%')
            ->orderBy('codigo_cliente','desc')
            ->paginate(7);
            return view('ventas.cliente.index',["clientes"=>$clientes,"searchText"=>$query]);
        }
    }
    public function create()
    {
        return view("ventas.cliente.create");
    }
    public function store (Request $request)

{
        $this->validate($request, [
    'documento' => 'required|unique:cliente|max:55',

]);


     try {

            DB::beginTransaction();
        $persona=new Persona;
        $persona->tipo_documento=$request->get('tipo_documento');
        $persona->documento=$request->get('documento');
        $persona->empresa=$request->get('empresa');
        $persona->direccion=$request->get('direccion');
        $persona->razon_social=$request->get('razon_social');
        $persona->save();
        $id = $persona->codigo_cliente;
        $evento=new Evento;
        $user = Auth::id();
        $evento->cod_usuario=$user;
        $evento->tabla='Cliente';
        $evento->accion='Nuevo Ingreso';
        $evento->codigo_referencia=$id;
        $mytime = Carbon::now(' America/Caracas');
        $evento->fecha =$mytime->toDateTimeString();
        $evento->save();
            $nombre=$request->get('nombre');
            $telefono = $request->get('telefono');
            $correo = $request->get('correo');
          $cont = 0;
             while ($cont < count($nombre)) {
                # code...
                $detalle = new Contacto();
                $detalle->idempresa=$id;
                $detalle->nombre=$nombre[$cont];
                $detalle->telefono=$telefono[$cont];
                $detalle->correo=$correo[$cont];
                $detalle->save();
                $cont=$cont+1;
          }
            DB::commit();
         } catch (\Exception $e) {
            DB::rollback(); 
        }
        return Redirect::to('ventas/cliente/create');




}



    public function show($id)
    {
        return view("ventas.cliente.show",["persona"=>Persona::findOrFail($id)]);
    }
    public function edit($id)
    {
        return view("ventas.cliente.edit",["persona"=>Persona::findOrFail($id)]);
    }
    public function update(PersonaFormRequest $request,$id)
    {
        $persona=Persona::findOrFail($id);
        $persona->tipo_documento=$request->get('tipo_documento');
        $persona->documento=$request->get('documento');
        $persona->empresa=$request->get('empresa');
        $persona->direccion=$request->get('direccion');
        $persona->razon_social=$request->get('razon_social');
        $persona->update();
        $evento=new Evento;
        $user = Auth::id();
        $evento->cod_usuario=$user;
        $evento->tabla='Cliente';
        $evento->accion='Modificacion';
        $evento->codigo_referencia=$id;
        $mytime = Carbon::now(' America/Caracas');
        $evento->fecha =$mytime->toDateTimeString();
        $evento->save();

        return Redirect::to('ventas/cliente');
    }
    public function destroy($id)
    {
       $persona=Persona::findOrFail($id);
       $clientes = DB::table('cliente')->where('codigo_cliente', '=', $id)->delete();
        $persona->update();
         $evento=new Evento;
        $user = Auth::id();
        $evento->cod_usuario=$user;
        $evento->tabla='Cliente';
        $evento->accion='Eliminar';
        $evento->codigo_referencia=$id;
        $mytime = Carbon::now(' America/Caracas');
        $evento->fecha =$mytime->toDateTimeString();
        $evento->save();
        return Redirect::to('ventas/cliente');
    }
}
Aboudeh87

this issue appear because one of the value that is between the {{}} returning an array instead of string.

and i think it is in the following code

<input type="text" name="pcorreo" id="pcorreo" class="form-control" value="{{old('correo')}}" placeholder="correo...">

and as I saw in your view code you have an input with name correo[] that is an array, and after the validation failure the controller redirect to the form view, the old('correo') function return an array instead of string

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

AngularJS validating of forms

From Dev

Validating forms with innerHTML

From Dev

Validating multiple forms on the same page

From Dev

Validating signup forms using PHP

From Dev

JavaScript - Forms - Validating numbers and email

From Dev

Jquery validating not empty and is URL in forms

From Dev

Validating Array in Laravel

From Dev

Laravel Validation: Validating OR instead of AND

From Dev

Validating a JSON array in Laravel

From Dev

Laravel Validation: Validating OR instead of AND

From Dev

Validating array request in Laravel

From Dev

Validating a checkbox in Laravel

From Dev

Validating React forms with Cornice/Colander/Pyramid

From Dev

Django: validating forms declared on client side with angularjs

From Dev

Jquery validating a specific form on a page with multiple forms

From Dev

Validating multiple checkboxes laravel 5.2

From Dev

Validating and then redirecting to a post route in Laravel

From Dev

Laravel/Lumen: validating and redirecting (302)

From Dev

Validating Array Keys in Laravel 5.2

From Dev

Validating unknown input fields in Laravel

From Dev

Validating Arrays of radio buttons in laravel

From Dev

Laravel 5 - Validating Mime types

From Dev

Laravel Validating Radio button input

From Dev

Validating Arrays of radio buttons in laravel

From Java

Laravel: Validating a number greater than zero is failing

From Dev

Having trouble validating on update (Laravel 5)

From Dev

Laravel 5 Validation - validating the sum of 2 fields

From Dev

Validating fields from different tables-laravel

From Dev

Laravel validating space character always failed