Laravel Routes
Laravel Routes#
URL endpoints defined at app/Http/routes.php
Using RESTful routes#
It is important to dedicate each controller to an associated resources
All you need to do in laravel for each controller is:
Route::resource('lists', 'ListController');
Then you would need the following actions:
index, create, store, show, edit, update, destroy
Using Implicit Routes (Non REST)#
A controller isn’t intended for REST then you can just use:
Route::controllers({
'lists' => 'ListsController'
});
You would then need to ensure that the action names are prefixed with get
or post
so that laravel knows.
class ListController extends Controller {
public function getIndex(){
return ...
}
public function getCreate()...
public function postStore()...
}
Defining Route Parameters#
Route::get('blog/category/{category}', 'BlogController@category');
So {category}
would become whatever is in the url ie. /blog/category/food
$category = 'food';
You would need the action to be setup:
public function category($category){
return view('blob.category')->with('category', $category);
}
Caveat: They need to be specified in the same order as parameters are specified
Caveat: parameters are required in the below case
Route::get('blog/category/{category}/{subcategory}', 'blogController@category');
public function category($category, $subcategory){
return view('blog.category')
->with('category', $category)
->with('category', $subcategory);
}
To make parameters not required is quote a rigmeral if you ask me
Route::get('blog/category/{category?}', 'BlogController@category');
public function category($category = ''){
$category = $category == '' ? 'php : $category;'
return view('blob.category')->with('category', $category);
}
## Route Aliases / Named Routes
These allow you to not have to change all links, when there is a change
Route::get(‘blog/category/{category}’, [‘as’ => ‘blog.category’, ‘uses’ => ‘BlogController@category’]);
#### Referencing Routes