
¿Cómo concatenar dos columnas en Laravel?. Brindaremos una solución con 2 ejemplos completos para concatenar columnas en el framework y este modelo funcionara sin problemas con las siguientes versiones laravel 6, laravel 7, laravel 8, laravel 9, laravel 10 y laravel 11.
¿Cómo concatenar dos columnas en Laravel?
Para unir o concatenas columnas en una Consulta SQL usaremos la función CONTACT(). Recordemos que, CONCAT es una función de MySQL que une dos o más cadenas de texto en una sola y podemos usarlo sin problemas.
Vamos a dar 2 formas para concatenar fácilmente dos columnas en laravel.
Primera forma: Declaración select concat()
Es concatenar dos columnas en una declaración select usando base de datos sin procesar en laravel. A continuación, les daré un ejemplo completo, para que puedan usar fácilmente el mismo código en su aplicación con un ciclo foreach().
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Client;
class ClientController extends Controller
{
public function index(Request $request)
{
$clients= Client::select("clients.id",
DB::raw("CONCAT(clients.first_name,' ',clients.last_name) as full_name"),
"clients.email"
)
->get();
return view('home', compact('clients'));
}
}
¿Como usar la siguiente consulta sql?
Este ejemplo podemos usar en una vista blade de Laravel. A continuación, veremos un ejemplo de uso.
@foreach ($clients as $client)
{{ $client->full_name }}
@endforeach
A través del ciclo foreach podemos asignarle estos valores a una etiqueta de lista desplegable (<select></select>)
o en una tabla HTML para mostrar la información de la base de datos.
Segunda forma: Metodo pluck
concat()
para unir 2 columnas o mas en una consulta SQLDebes establecer en tu modelo tal como lo definimos en el modelo de cliente.
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\Client as Authenticatable;
class Client extends Authenticatable
{
use Notifiable;
protected $fillable = [
'first_name', 'last_name', 'email','type','is_active',
];
protected $casts = [
'email_verified_at' => 'datetime',
];
public function getFullNameAttribute()
{
return "{$this->first_name} {$this->last_name}";
}
}
Utilice Pluck Concat dos columnas:
Uso de este ejemplo
$clients = Client::select("id", DB::raw("CONCAT(clients.first_name,' ',clients.last_name) as full_name"))
->pluck('full_name', 'id');
dd($clients);
Espero que esto ayude en sus inquietudes de concatenación de 2 columnas en Laravel.