Laravel Eloquent Concat Two Columns Example
If you need to concat two columns with laravel query builder then i will give you example of how to concat two columns in laravel 6 application. we will concat columns in select statement and using laravel eloquent scope.
I will give you two way solution for concatenate columns in laravel 6, laravel 7, laravel 8, laravel 9, laravel 10 and laravel 11 app. both way you can easily concatenating two columns in laravel 6 application.
First way is we will concat two columns in select statement using db raw in laravel 6. bellow i will give you full example, so you can easily use same code in your application. you can easily use with pluck method too.
Second way is we will use laravel model eloquent scope, using scope we will concat two columns. but i think we can say crop is a limited solution. But if you don't require more complex then you can use it. You can see both example bellow so. You will understand.
Example 1:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$users = User::select("users.id",
DB::raw("CONCAT(users.first_name,' ',users.last_name) as full_name"),
"users.email"
)
->get();
return view('home', compact('users'));
}
}
Use:
@foreach ($users as $user)
{{ $user->full_name }}
@endforeach
Example 2:
You need to set scope in your model like as we defining on user model.
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'first_name', 'last_name', 'email', 'password','type','is_active',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
/**
* Get the user's full concatenated name.
* -- Must postfix the word 'Attribute' to the function name
*
* @return string
*/
public function getFullNameAttribute()
{
return "{$this->first_name} {$this->last_name}";
}
}
Use:
@foreach ($users as $user)
{{ $user->full_name }}
@endforeach
Use Pluck Concat Two Columns:
$users = User::select("id", DB::raw("CONCAT(users.first_name,' ',users.last_name) as full_name"))
->pluck('full_name', 'id');
dd($users);
I hope it can help you...
Hardik Savani
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- How to Get Last Executed Query in Laravel 8?
- Laravel Eloquent whereBetween() Query Example
- Laravel Eloquent Where Query Examples
- Laravel Eloquent orWhere() Condition Example
- How to Add Flash Message in Laravel?
- Laravel Many to Many Eloquent Relationship Tutorial
- How to Execute MySQL Query in Laravel?
- How to Concat Two Columns in Laravel?
- Laravel Eloquent Inner Join with Multiple Conditions Example
- Laravel Join with Subquery in Query Builder Example
- How to Remove Query String from URL using JQuery?
- How to Get Month Difference Between Two Dates in Laravel?
- GROUP_CONCAT with different SEPARATOR in Laravel Example