laravel 5.4 New Features - The whereKey method with example

laravel 5.4 New Features - The whereKey method with example

The whereKey method is one of those new features added in Laravel 5.4 as we already discussed about Laravel 5.4 new features and changes in my last post but in this post, we will know more about whereKey method with examples.

As we know, New features is always interesting and save time effort.

whereKey($id) method is used to find out record from database table for given primary key value.

Before going with Laravel 5.4 version we will look into older version of Laravel which means we will know how i get data from database in older version for given specific condition.

Example :

In this example we will have a product table with some dummy data as we show in below screen shot :

We were using where clause that require three arguments, First one is the name of column and second one is an operator and third one is the value to evaluate against the column.

$products = \DB::table('products')->where('status','active')->get();

While working with Laravel 5.4, you can use whereKey method instead of where('key',..) clause.

 $products = \DB::table('products')->whereStatus('active')->get();
 dd($products);

You will get same response in both case :

Collection {#170 ?
  #items: array:1 [?
    0 => {#167 ?
      +"id": 2
      +"name": "product1"
      +"details": "details1"
      +"status": "Active"
      +"created_at": "2017-02-03 00:00:00"
      +"updated_at": "0000-00-00 00:00:00"
    }
  ]
}

When you are using Laravel Eloquent and you need to fetch record on behalf of primary key constraint then you can directly use whereKey($id) method without specifying id in such case manually.

$product = Product::whereKey($id)->first();
dd($product);

There are so many methods available in Laravel that you can use very easily in your application.

For example, if you need to get single record of a column and you are aware of value method then you can go with this method to get a record of specified column.

Without value method
$product=Product::whereStatus('Inactive')->first();
dd($product->details);

Using value method

$product=Product::whereStatus('active')->value('details');

This will work same as you were doing before.

Phone: (+91) 8800417876
Noida, 201301