Tuesday, May 23, 2017

Validating forms on laravel

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></li>
                        @endforeach
                    </ul>
                </div>
            @endif
        </div>
        {!!Form::open(array('url'=>'ventas/cliente','method'=>'POST','autocomplete'=>'off', 'files'=>'true'))!!}
        
        <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="" 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="" 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=""
                           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="" 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="" 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="" 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');
    }
}



via Jorge Ortiz

Advertisement