Laravel V5.4.28 is now released


July 1st, 2017


The Laravel team released V5.4.28 yesterday and it includes a few new useful features.

The first of these is a new array_random helper that allows you do something like this:

1array_random(['one', 'two', 'three']);
2// "two"

Or you can specify the number of random items you’d like returned:

1array_random(['one', 'two', 'three'], 2);
2// array:2 [▼
3 0 => "one"
4 1 => "three"

Another new feature is an unless method on the query builder and Collections which allows you to make your code more expressive. For example, on a Collection:

1collect()->when(! true, function () {});
2// is the same as:
3collect()->unless(true, function () {});

For all the other changes I’ve included the full change log below:

Laravel v5.4.28 Complete Change Log


  • Added avg() and average() as higher order proxies (#19628)
  • Added fresh() method to Eloquent collection (#19616, #19671)
  • Added ability to remove a global scope with another global scope (#19657)
  • Added Collection::intersectKey() method (#19683)
  • Support setting queue name via broadcastQueue() method (#19703, #19708)
  • Support default return on BelongsTo relations (#19733, #19788, 1137d86, ed0182b)
  • Added unless() method to query builder and collection (#19738, #19740)
  • Added array_random() helper (#19741, #19818, #19826)
  • Support multiple manifest files on mix() (#19764)


  • Escape default value passed to @yield directive (#19643)
  • Support passing multiple fields to different validation rule (#19637)
  • Only dispatch the MessageSent event if mails should be sent (#19690)
  • Removed duplicate / from public_path() (#19731)
  • Made ThrottlesLogins more customizable (#19787)
  • Support PostgreSQL insert statements with DEFAULT VALUES (#19804)


  • Fixed BelongsTo bug with incrementing keys (#19631)
  • Fixed PDO return value bug in unprepared() (#19667)
  • Don’t use event() helper in Http\Kernel (#19688)
  • Detect lock wait timeout as deadlock (#19749)
  • Improved escaping special characters in MySQL comments (#19798)
  • Fixed passing email as string to Event::emailOutputTo() (#19802)
  • Fixed withoutOverlapping() not creating mutex (#19834)


  • Removed role attribute from forms in stubs (#19792)

Filed in:

Eric L. Barnes

Eric is the creator of Laravel News and has been covering Laravel since 2012.

Laravel News Partners