Skip to content

Instantly share code, notes, and snippets.

@vlakoff
Forked from vluzrmos/HasRandomStatementTrait.php
Created July 31, 2015 19:37
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vlakoff/8c8a9c8ee9437d3c1a94 to your computer and use it in GitHub Desktop.
Save vlakoff/8c8a9c8ee9437d3c1a94 to your computer and use it in GitHub Desktop.
Laravel Eloquent Agnostic Random Statement
<?php
trait OrderByRandomTrait
{
/**
* Scope to order by random.
*
* @param \Illuminate\Database\Query\Builder $query
* @return \Illuminate\Database\Query\Builder
*/
public function scopeOrderByRandom($query)
{
static $randomFunctions = [
'mysql' => 'RAND()',
'pgsql' => 'RANDOM()',
'sqlite' => 'RANDOM()',
'sqlsrv' => 'NEWID()',
];
$driver = $this->getConnection()->getDriverName();
return $query->orderByRaw($randomFunctions[$driver]);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment