Bài giảng Phát triển phần mềm nguồn mở - Bài 7: Route, views, blade templates - Nguyễn Hữu Thể

PHÁT TRIỂN PHẦN MỀM NGUỒN MỞ  
ROUTE, VIEWS, BLADE TEMPLATES  
Nguyễn Hữu Thể  
Routing  
− Basic Routing  
− Route Parameters  
• Required Parameters  
• Optional Parameters  
• Regular Expression Constraints  
− Named Routes  
− Route Groups  
• Middleware  
• Namespaces  
• Sub-Domain Routing  
• Route Prefixes  
− Route Model Binding  
• Implicit Binding  
• Explicit Binding  
− Form Method Spoofing  
− Accessing The Current Route  
2
Basic Routing  
− Laravel routes: providing a very simple and  
expressive method of defining routes:  
Route::get ('/', function () {  
return view('welcome');  
} );  
− For most applications, you will begin by defining  
routes in your routes/web.php file.  
4
Basic Routing  
Route::get ( 'foo', function () {  
return 'Hello World';  
} );  
5
Available Router Methods  
− The router allows you to register routes that respond  
to any HTTP verb:  
Route::get($uri, $callback);  
Route::post($uri, $callback);  
Route::put($uri, $callback);  
Route::patch($uri, $callback);  
Route::delete($uri, $callback);  
Route::options($uri, $callback);  
6
Route Parameters  
Route::get ( 'foo', function () {  
return 'Hello World';  
} );  
Route::get ( '/', function () {  
return 'Hello World';  
} );  
Route::post ( 'foo/bar', function () {  
return 'Hello World';  
} );  
Route::put ( 'foo/bar', function () {  
//  
} );  
Route::delete ( 'foo/bar', function () {  
//  
} );  
7
Responds to multiple HTTP  
− Using the match method.  
Route::match ( [ 'get','post' ], '/', function () {  
return 'Hello World';  
} );  
− Or, register a route that responds to all HTTP verbs  
using the any method.  
Route::any ( 'foo', function () {  
return 'Hello World';  
} );  
8
Route Parameters  
− You may need to capture a user's ID from the URL.  
You may do so by defining route parameters:  
Route::get ( 'hello/{name}', function ($name) {  
return 'Hello ' . $name;  
} );  
9
Route Parameters  
− You may define as many route parameters as required  
by your route:  
Route::get ( 'posts/{post}/comments/{comment}',  
function ($postId, $commentId) {  
//  
} );  
− Note:  
• Route parameters are always encased within {} braces and  
should consist of alphabetic characters.  
• Route parameters may not contain a - character. Use an  
underscore (_) instead.  
10  
Optional Parameters  
− Placing a ? mark after the parameter name. Make  
sure: a default value  
Route::get ( 'user/{name?}', function ($name = null) {  
if ($name == null)  
//Response to …  
else  
//Response to …  
} );  
Route::get ( 'user/{name?}', function ($name = 'John') {  
return $name;  
} );  
1  
Regular Expression Constraints  
− Constrain the format of your route parameters using  
the where method on a route instance.  
Route::get ( 'user/{name}', function ($name) {  
return$name;  
} )->where ( 'name', '[A-Za-z]+' );  
Route::get ( 'user/{id}', function ($id) {  
return$id;  
} )->where ( 'id', '[0-9]+' );  
Route::get ( 'user/{id}/{name}', function ($id, $name) {  
return$id . ' ' . $name;  
} )->where ( [ 'id' => '[0-9]+','name' => '[a-z]+' ] );  
12  
Regular Expression Constraints  
13  
Global Constraints  
− A route parameter to always be constrained by a given regular  
expression, use the pattern method.  
− Define these patterns in the boot method of your  
RouteServiceProvider: app\Providers\RouteServiceProvider.php  
public function boot(){  
Route::pattern('id', '[0-9]+');  
parent::boot();  
}
− Once the pattern has been defined, it is automatically applied to all routes  
using that parameter name:  
Route::get('user/{id}', function ($id) {  
// Only executed if {id} is numeric...  
});  
14  
Named Routes  
− The convenient generation of URLs or redirects for  
specific routes.  
− name method:  
Route::get ( 'user/profile', function () {  
//  
} )->name ( 'profile' );  
− You may also specify route names for controller actions:  
Route::get('user/profile',  
'UserController@showProfile')->name('profile');  
15  
Generating URLs To Named Routes  
− Use the route's name when generating URLs or redirects via  
the global route function:  
// Generating URLs...  
$url = route('profile');  
// Generating Redirects...  
return redirect()->route('profile');  
− If the named route defines parameters, you may pass the  
parameters as the second argument to the route function.  
Route::get('user/{id}/profile', function ($id) {  
//  
})->name('profile');  
$url = route('profile', ['id' => 1]);  
16  
Route Groups  
− Share route attributes:  
• middleware  
• Namespaces  
• Sub-Domain Routing  
• Route Prefixes  
− Shared attributes are specified in an array format as  
the first parameter to the Route::group() method.  
17  
Middleware  
− To assign middleware to all routes within a group,  
you may use the middleware key in the group  
attribute array.  
Route::group ( [ 'middleware' => 'auth' ], function () {  
Route::get ( '/', function () {  
// Uses Auth Middleware  
} );  
Route::get ( 'user/profile', function () {  
// Uses Auth Middleware  
} );  
} );  
18  
Namespaces  
− Use-case for route groups is assigning the same PHP  
namespace to a group of controllers using the namespace  
parameter in the group array:  
Route::group ( [ 'namespace' => 'Admin' ], function () {  
// Controllers Within The  
//"App\Http\Controllers\Admin" Namespace  
} );  
− Default: the RouteServiceProvider includes your route  
files within a namespace group, allowing you to register  
controller routes without specifying the full  
App\Http\Controllers namespace prefix.  
19  
Sub-Domain Routing  
− Route groups may also be used to handle sub-domain  
routing.  
− The sub-domain may be specified using the domain  
key on the group attribute array:  
Route::group(['domain' => '{account}.myapp.com'], function () {  
Route::get('user/{id}', function ($account, $id) {  
//  
});  
});  
20  
Tải về để xem bản đầy đủ
pdf 81 trang yennguyen 24940 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phát triển phần mềm nguồn mở - Bài 7: Route, views, blade templates - Nguyễn Hữu Thể", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_phat_trien_phan_mem_nguon_mo_bai_7_route_views_bla.pdf