Property Insert Database Part 2

Para empezar a traer los datos a la tabla ‘properties’, en nuestro método StoreProperty(Request $request) En app/Http/Controllers/Backend/PropertyController.php

public function StoreProperty(Request $request){

    $amen = $request->amenities_id;
    dd($amen);
}

Para checcar que nos llega con el campo “comodidades” donde colocamos codigo para recuperar multiples comodidades. Vamos viendo que nos entrega.

array:3 [ // app/Http/Controllers/Backend/PropertyController.php:39
  0 => "2"
  1 => "6"
  2 => "7"
] 

Nos regresa un array con lso id de los multiples items que escogimos. Para poder separar estos items, tenemos que usar la funcion implode() asi:

$amen = $request->amenities_id;
// dd($amen);
$comodidades = implode(",", $amen);
dd($comodidades); 

Esto nos da:

"2,6,7" // app/Http/Controllers/Backend/PropertyController.php:41 

Como podemos ver nos entrega un string con los datos separados por coma. Este tipo de string es el que nos conviene guardar en el campo ‘amenities_id’ de la tabla ‘properties’.

En el campo de ‘property_code’ tiene que ser unique y tiene que ser automaticamente generado. Para eso podemos usar un paquete de laravel “Laravel ID Generator”:

composer require haruncpi/laravel-id-generator

Para usar el paquete:

use Haruncpi\LaravelIdGenerator\IdGenerator;

Para generar el codigo unique

$pcode = IdGenerator::generate([
            'table' => 'properties',
            'field' => 'property_code',
            'length' => 5, 
            'prefix' => 'PC' 
        ]); 

Asi queda en app/Http/Controllers/Backend/PropertyController.php

...
use Intervention\Image\Facades\Image;
use Haruncpi\LaravelIdGenerator\IdGenerator;
use Carbon\Carbon;
...
// Store Property
public function StoreProperty(Request $request){

   $amen = $request->amenities_id;
   // dd($amen);
   $comodidades_str = implode(",", $amen);
   // dd($comodidades);

   // Generar un código unique de 5 dígitos con un prefix property code (PC)
   $pcode = IdGenerator::generate([
                   'table' => 'properties',
                   'field' => 'property_code',
                   'length' => 5,
                   'prefix' => 'PC'
               ]);

   $image = $request->file('property_thambnail');
   $name_gen = hexdec(uniqid()).'.'.$image->getClientOriginalExtension(); // crear un unique id para la imagen
   Image::make($image)->resize(370,250)->save('upload/property/thambnail/'.$name_gen);
   $save_url = 'upload/property/thambnail/'.$name_gen;

   $property_id = Property::insertGetId([

       'ptype_id' => $request->ptype_id,
       'amenities_id' => $comodidades_str,
       'property_name' => $request->property_name,
       'property_slug' => strtolower(str_replace(' ', '-', $request->property_name)),
       'property_code' => $pcode,
       'property_status' => $request->property_status,

       'lowest_price' => $request->lowest_price,
       'max_price' => $request->max_price,
       'short_descp' => $request->short_descp,
       'long_descp' => $request->long_descp,
       'bedrooms' => $request->bedrooms,
       'bathrooms' => $request->bathrooms,
       'garage' => $request->garage,
       'garage_size' => $request->garage_size,

       'property_size' => $request->property_size,
       'property_video' => $request->property_video,
       'address' => $request->address,
       'city' => $request->city,
       'state' => $request->state,
       'postal_code' => $request->postal_code,

       'neighborhood' => $request->neighborhood,
       'latitude' => $request->latitude,
       'longitude' => $request->longitude,
       'featured' => $request->featured,
       'hot' => $request->hot,
       'agent_id' => $request->agent_id,
       'status' => 1,
       'property_thambnail' => $save_url,
       'created_at' => Carbon::now(),

   ]);

}  

Listo!