Select only the columns you need in Laravel
Usually to retrieve results from a database table, we would do the following.
$posts = Post::find(1); //When using eloquent
$posts = DB::table('posts')->where('id','=',1)->first(); //When using query builder
The above code will result in a query as below
select * from posts where id = 1 limit 1
As you can see, the query is doing a select *
. This means it is retrieving all the columns from the database table.
This is fine if we really need all the columns from the table.
Instead, if we need only specific columns(id, title), we can retrieve only those columns as below.
$posts = Post::select(['id','title'])->find(1); //When using eloquent
$posts = DB::table('posts')->where('id','=',1)->select(['id','title'])->first(); //When using query builder
The above code will result in a query as below
select id,title from posts where id = 1 limit 1