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 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');
Shop::where('orders_cache','>','100')->increment('orders_cache');
Shop::where('orders_cache','>','100')->decrement('orders_cache');
- or, between, whereNull, whereIn
- inserts
- updates
- deletes
- soft deletes
- unions
- raw expressions
- grouping
- joins
- Fillable
- Guarded
One correction:
$shops = Shop::where('name', 'Starbucks')->get('name','address','url');
should be
$shops = Shop::where('name', 'Starbucks')->get( array('name','address','url') );
get()
takes an array as a parameter