Skip to content

Instantly share code, notes, and snippets.

Forked from msurguy/
Created February 17, 2014 10:49
Show Gist options
  • Save lorvent/9048475 to your computer and use it in GitHub Desktop.
Save lorvent/9048475 to your computer and use it in GitHub Desktop.


Defining Eloquent model (will assume that DB table named is set as plural of class name and primary key named "id"):

class Shop extends Eloquent {}

Using custom table name

protected $table = 'my_shops';

Using custom primary key (instead of "id"):

protected $primaryKey = 'my_key';

Disabling use of "created_at" and "updated_at" columns:

public $timestamps = false;

Retrieving records:

Retrieving all records(rows) of a given model:

$shops = Shop::all();

Find and get a record by primary key:

$shop = Shop::find(1);

Retrieving single record that matches a certain column : $shop = Shop::where('name', 'Starbucks')->first();

Retrieving specific columns of the result (by default get() returns all columns): $shops = Shop::where('name', 'Starbucks')->get('name','address','url');

Retrieving single column of result : $shopAddresses = Shop::where('name', 'Starbucks')->pluck('address');

Retrieving records matching a criteria:

$profitableShops = Shop::where('orders_cache','>','100')->get(); where() takes 3 parameters, name of the column, operator and value to be compared against. The operator can be one of the following: '=', '<', '>', '<=', '>=', '<>', '!=', 'like', 'not like', 'between', 'ilike'

Retrieve only a specified number of records matching a criteria:

$californianShops = Shop::where('state', 'CA')->take(10)->get();

Skip a specified number of records:

$someShops = Shops::where('name', 'Starbucks')->skip(10)->get();

Combining "skip" and "take" (useful for making custom paginators):

$shops = Shops::where('name', 'Starbucks')->skip(25)->take(25)->get();

Using forPage() to accomplish the above statement:

$shops = Shops::where('name', 'Starbucks')->forPage(2,25)->get();


Counting the number of rows of the query results:

$countStarbucks = Shop::where('name','Starbucks')->count();

Getting a maximum value of the query result:

$maxCoffeePrice = Product::where('name','Coffee')->max('price');

Getting a minimum value of the query result:

$minCoffeePrice = Product::where('name','Coffee')->min('price');

Getting an average value of the query result:

$averageCoffeePrice = Product::where('name','Coffee')->avg('price');

Getting a sum of the query result:

$totalWeight = Product::where('name','Coffee')->sum('weight');

Incrementing and decrementing values of a column:



Todo :

  • or, between, whereNull, whereIn
  • inserts
  • updates
  • deletes
  • soft deletes
  • unions
  • raw expressions
  • grouping
  • joins
  • Fillable
  • Guarded
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment