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
Attention Required! | Cloudflare

Sorry, you have been blocked

You are unable to access ressim.net

Why have I been blocked?

This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.

What can I do to resolve this?

You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.