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):
$shop = Shop::where('name', 'Starbucks')->get('name','address','url');
Retrieving singe column of single row :
$name = Shop::where('name', 'Starbucks')->pluck('address');
Retrieving records matching a criteria:
$shops = 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:
$shops = Shop::where('state', 'CA')->take(10)->get();
Skip a specified number of records:
$shops = 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();