Mam problem w walidacji Lavel 7. Jest dość dziwnie (dla mnie), ponieważ nawet nie użyłem unikalnej walidacji, użyłem wymaganej walidacji Jest to mój kod formularza

@extends('layouts.admin-app')

@section('content')
  <!-- Page Content -->
    <div id="page-content-wrapper">
       <!--NAVIGATION-->
        <nav aria-label="breadcrumb">
        <ol class="breadcrumb">
            <li class="breadcrumb-item"><a href="#">Home</a></li>
            <li class="breadcrumb-item" aria-current="page">Tenant</li>
            <li class="breadcrumb-item active" aria-current="page">Crear</li>
        </ol>
        </nav>
        <!--END NAVIGATION-->
    

        <form action="{{ route('admin.tenant.create') }}" method="POST">
            @csrf
            <h2>Datos del cliente</h2>
            <div class="row">
                <div class="col-xs-3 col-sm-3 col-md-3">
                    <div class="form-group">
                    <label for="nameform">Nombre</label>
                    <input type="text" name="name" class="form-control" placeholder="Nombre">
                    @error('name')
                            <span class="invalid-feedback" role="alert">
                                <small>{{ $message }}</small>
                            </span>
                    @enderror
                    </div>
                </div>
                <div class="col-xs-3 col-sm-3 col-md-3">
                    <div class="form-group">
                    <label for="middleform">Segundo nombre</label>
                    <input type="text" name="middlename" class="form-control" placeholder="Segundo nombre">
                    </div>
                </div>
                <div class="col-xs-3 col-sm-3 col-md-3">
                    <div class="form-group">
                    <label for="lastnameform">Apellido paterno</label>
                    <input type="text" name="lastname" class="form-control" placeholder="Apellido paterno" required>
                    @error('lastname')
                                    <span class="invalid-feedback" role="alert">
                                        <small>{{ $message }}</small>
                                    </span>
                    @enderror
                    </div>
                </div>
                <div class="col-xs-3 col-sm-3 col-md-3">
                    <div class="form-group">
                    <label for="lastname2form">Apellido materno</label>
                    <input type="text" name="msurname" class="form-control" placeholder="Apellido materno">
                    @error('msurname')
                                    <span class="invalid-feedback" role="alert">
                                        <small>{{ $message }}</small>
                                    </span>
                    @enderror
                    </div>
                </div>
                
            </div>
            <br>
            <div class="row">
                
                <div class="col-xs-4 col-sm-4 col-md-4">
                
                    <div class="form-group">
                        <label for="emailForm">Correo electrónico</label>
                        <input type="email" class="form-control" id="emailForm" name="email" placeholder="name@example.com" required>
                    </div> 
                </div>
                <div class="col-xs-4 col-sm-4 col-md-4">
                
                <div class="form-group">
                    <label for="rutForm">Rut</label>
                    <input type="text" class="form-control" id="rut" name="rut" required placeholder="ex. 1.111.111-1">
                    @error('rut')
                                    <span class="invalid-feedback" role="alert">
                                        <small>{{ $message }}</small>
                                    </span>
                    @enderror
                </div> 
            </div>
            <div class="col-xs-4 col-sm-4 col-md-4">
                
                <div class="form-group">
                    <label for="directionForm">Dirección</label>
                    <input type="text" class="form-control" id="directionForm" name="direction" required>
                    @error('direction')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                    @enderror
                    <small id="directionHelp" class="form-text text-muted">Nombre de calle y número. Ej. Av.Vicuña Mackenna 333.</small>
                </div> 
            </div>
            </div>

            <h2>Datos Tienda</h2>
            <div class="row">
                <div class="col-xs-12 col-sm-12 col-md-12">
                    <div class="form-group">
                        <label for="subdomain">Nombre Subdominio</label>
                        <input type="text" name="subdomain" class="form-control" placeholder="Nombre del subdominio" required>
                    @error('subdomain')
                                    <span class="invalid-feedback" role="alert">
                                        <small>{{ $message }}</small>
                                    </span>
                    @enderror

                   </div> 
                </div>
            </div>
      <br>

       

        <div class="col-xs-12 col-sm-12 col-md-12 text-center">

                <button type="submit" class="btn btn-primary">Enviar</button>

        </div>

    </div>




</form>
       

         
</div>


@endsection

To jest funkcja

 public function create(Request $request)
    {
      
        //Receive data
        $request->validate([
            'name' => 'required|max:20',
            'middlename'=>'required|max:20|alpha',
            'lastname'=>'required|max:20|alpha',
            'rut'=>'required|max:13',
            'direction'=>'required|alpha_num',
            'email'=>'required|unique|max:50',
            'subdomain'=>'required:50',

        ]);

    

        $rut = $request->rut;
        
       


        $url_base = config('app.url_base');
        $subdomain = $request->subdomain;
        $name =  $request->name;
        $email =  $request->email;
        $fqdn = "{$subdomain}.{$url_base}";

        //otros datos

        $middlename = $request->middlename;
        $lastname = $request->lastname;
        $msurname =  $request->msurname;
        
        $direction = $request->direction;
      
        try {
            // Validate the value...

            if ( $this->tenantExists( $fqdn ) ) {
                // abort with an error
              
                return;
            }
        } catch (Throwable $e) {
            report($e);
    
            return false;
        }

       

        //create website
        $website = new Website;
        $website->uuid = Str::random(20);
        app(WebsiteRepository::class)->create($website);

        $hostname = new Hostname;
        $hostname->fqdn = $fqdn;
        $hostname = app(HostnameRepository::class)->create($hostname);
        app(HostnameRepository::class)->attach($hostname, $website);

        //Enviar
        // create a new user
        $password = Str::random(10);
        $user = User::create([
            'name' => $name,
            'email' => $email,
            'password' => Hash::make( $password )
        ]);
        $user->save();
        //create a client
        $client = Client::create([
            'name' => $name,
            'middlename'=>$middlename,
            'lastname'=>$lastname,
            'msurname'=>$msurname,
            'email' => $email,
            'rut'=>$rut,
            'direction'=>$direction,
            
        ]);
        $client->save();

       
        $record= new Record;
        $record->client_id = $client->id;
        $record->hostname_id = $hostname->id;
        $record->website_id = $website->id;


        $client->record()->associate($record);
       $record->save();
       
        
        //Records
        
        return redirect('admin/tenants')->with('success', 'Se ha creado un tenant');
       
    }

Jest coś złego w parametrach, ale (ponownie) Zawsze robię właśnie walidacja, nigdy wcześniej nie mam błędu. Czy możesz mi pomóc ludziom?

0
Valentina Moreno 21 listopad 2020, 16:59

1 odpowiedź

Najlepsza odpowiedź

Zmiana

'email'=>'required|unique|max:50'

Do

'email'=>'required|unique:users,email|max:50'

(Jeśli potrzebujesz zarówno unikalnych User i Client e-maile, dodaj zarówno: unique:users,email|unique:clients,email)

0
Luca Puddu 21 listopad 2020, 14:18