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  
Nguyn Hu 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 12/04/2022 5940
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