Laravel

¿Cómo concatenar dos columnas en Laravel?

Concatenar dos columnas en consulta SQL Laravel

¿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

La segunda forma es usar el alcance elocuente del modelo laravel y el método pluck. Por lo tanto, también usaremos concat() para unir 2 columnas o mas en una consulta SQL

Debes 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.

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.
Botón volver arriba
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad