Bài giảng Phát triển phần mềm nguồn mở: Bài 7 - Nguyễn Hữu Thể
lượt xem 3
download
Blade là templating engine đơn giản nhưng rất tuyệt vợi cung cấp bởi Laravel. Không như những templating engine của PHP, Blade không cấm bạn sử dụng code PHP thuần ở trong view. Bài giảng này sẽ hướng dẫn người học sử dụng route, views, blade templates trong Laravel. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Phát triển phần mềm nguồn mở: Bài 7 - 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
- Routing Image from: http://www.savecontactform7.com/everything-you-need-to-know-about-laravel-framework 3
- 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. − Test: http://localhost/MyProject/public/ 4
- Basic Routing Route::get ( 'foo', function () { return 'Hello World'; } ); − Test: http://localhost/MyProject/public/foo 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; } ); 11
- 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
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Quy trình phát triển phần mềm
40 p | 359 | 51
-
Bài giảng Phát triển phần mềm mã nguồn mở: Chương 2 - ThS. Dương Thành Phết
21 p | 111 | 13
-
Bài giảng Phát triển phần mềm mã nguồn mở: Chương 1 - ThS. Dương Thành Phết
31 p | 119 | 11
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux Kernel - Bùi Minh Quân
32 p | 132 | 8
-
Bài giảng Phát triển phần mềm mã nguồn mở: Quản lý gói phần mềm - TS. Ngô Bá Hùng
12 p | 113 | 8
-
Bài giảng Phát triển phần mềm mã nguồn mở: Lập trình C/Linux - Bùi Minh Quân
29 p | 94 | 6
-
Bài giảng Phát triển phần mềm mã nguồn mở: Thị trường điện tử
43 p | 51 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux operating system - Bùi Minh Quân (tt)
43 p | 91 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux user management - Bùi Minh Quân
28 p | 123 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Mở đầu - Bùi Minh Quân
12 p | 106 | 5
-
Bài giảng Phát triển phần mềm nguồn mở: Bài 1 - Nguyễn Hữu Thể
5 p | 45 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Giới thiệu về phần mềm mã nguồn mở - Bùi Minh Quân
39 p | 93 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Giới thiệu
16 p | 83 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: IDE và SDK
40 p | 40 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: MVC
12 p | 44 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux operating system - Bùi Minh Quân
15 p | 99 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: Giới thiệu Drupal
49 p | 30 | 3
-
Bài giảng Phát triển phần mềm mã nguồn mở: Zend framework
11 p | 33 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn