{"id":507,"date":"2020-06-12T10:54:50","date_gmt":"2020-06-12T03:54:50","guid":{"rendered":"https:\/\/www.marketenterprise.vn\/blog\/?p=507"},"modified":"2021-12-20T19:55:54","modified_gmt":"2021-12-20T12:55:54","slug":"nhung-dieu-can-biet-ve-laravel","status":"publish","type":"post","link":"https:\/\/www.marketenterprise.vn\/blog\/nhung-dieu-can-biet-ve-laravel.html","title":{"rendered":"Nh\u1eefng \u0111i\u1ec1u c\u1ea7n bi\u1ebft v\u1ec1 Laravel"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Gi\u1edbi thi\u1ec7u Laravel<\/h2>\n\n\n\n<p>Laravel l\u00e0 m\u1ed9t PHP framework, c\u00f3 m\u00e3 ngu\u1ed3n m\u1edf v\u00e0 mi\u1ec5n ph\u00ed, \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng nh\u1eb1m h\u1ed7 tr\u1ee3 ph\u00e1t tri\u1ec3n c\u00e1c ph\u1ea7n m\u1ec1m, \u1ee9ng d\u1ee5ng, theo ki\u1ebfn tr\u00fac MVC. \u0110\u01b0\u1ee3c t\u1ea1o ra b\u1edfi <em>Taylor Otwell<\/em> v\u1edbi phi\u00ean b\u1ea3n \u0111\u1ea7u ti\u00ean \u0111\u01b0\u1ee3c ra m\u1eaft v\u00e0o th\u00e1ng 6 n\u0103m 2011.<br><br><\/p>\n\n\n\n<p><a href=\"https:\/\/laravel-news.com\/in-narnia-cair-paravel-is-the-name-of-the-castle\" target=\"_blank\" rel=\"noopener\">C\u00e1i t\u00ean Laravel<\/a> xu\u1ea5t ph\u00e1t t\u1eeb Cair Paravel l\u00e0 m\u1ed9t t\u00f2a l\u00e2u \u0111\u00e0i c\u1ee7a Narnia, m\u1ed9t th\u1ebf gi\u1edbi t\u01b0\u1edfng t\u01b0\u1ee3ng trong cu\u1ed1n ti\u1ec3u thuy\u1ebft n\u1ed5i ti\u1ebfng \u201c<em>Bi\u00ean ni\u00ean s\u1eed Narnia<\/em>\u201d (The Chronicles of Narnia) \u0111\u00e3 \u0111\u01b0\u1ee3c d\u1ef1ng th\u00e0nh phim. Laravel l\u00e0 c\u00e1ch \u0111\u1ecdc l\u00e1i c\u1ee7a Paravel. V\u00e0 <em>Taylor Otwell&nbsp; <\/em>ngh\u0129 n\u00f3 s\u00e0nh \u0111i\u1ec7u v\u00e0 sang tr\u1ecdng.<br><br><\/p>\n\n\n\n<p>Qu\u1ea3 \u0111\u00fang, Laravel c\u00f3 c\u00fa ph\u00e1p \u0111\u01a1n gi\u1ea3n d\u1ec5 h\u1ecdc, d\u1ec5 \u0111\u1ecdc v\u00e0 r\u1ea5t thanh l\u1ecbch,&nbsp; c\u0169ng nh\u01b0 gi\u00fap ng\u01b0\u1eddi d\u00f9ng kh\u00f4ng ph\u1ea3i b\u1eadn t\u00e2m t\u1edbi c\u00e1c \u0111i\u1ec1u nh\u1ecf nh\u1eb7t.<\/p>\n\n\n\n<p>Hi\u1ec7n nay Laravel \u0111\u00e3 l\u00e0 PHP framework s\u1ed1 m\u1ed9t v\u00e0 gi\u1eef v\u1eefng \u0111\u01b0\u1ee3c v\u1ecb tr\u00ed \u0111\u00f3 t\u1eeb 2014 cho \u0111\u1ebfn nay.<br><br><\/p>\n\n\n\n<p>M\u1ed9t trong nh\u1eefng l\u00fd do khi\u1ebfn Laravel \u0111\u01b0\u1ee3c bi\u1ebft \u0111\u1ebfn v\u00e0 s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i l\u00e0 nh\u1edd v\u00e0o ngu\u1ed3n t\u00e0i li\u1ec7u, t\u1ea1i trang ch\u1ee7 c\u1ee7a Laravel th\u00ec t\u00e0i li\u1ec7u h\u01b0\u1edbng d\u1eabn c\u0169ng r\u1ea5t chi ti\u1ebft cho t\u1eebng phi\u00ean b\u1ea3n v\u00e0 d\u1ec5 t\u00ecm ki\u1ebfm, \u0111\u01b0\u1ee3c h\u1ec7 th\u1ed1ng cho ng\u01b0\u1eddi l\u1eadp tr\u00ecnh vi\u00ean, c\u0169ng nh\u01b0 ng\u01b0\u1eddi m\u1edbi h\u1ecdc d\u1ec5 d\u00e0ng ti\u1ebfp c\u1eadn v\u00e0 t\u00ecm hi\u1ec3u. V\u1edbi s\u1ef1 h\u1ed7 tr\u1ee3 m\u1ea1nh m\u1ebd c\u1ee7a c\u1ed9ng \u0111\u1ed3ng th\u00ec khi c\u00f3 b\u1ea5t k\u1ef3 v\u1ea5n \u0111\u1ec1 n\u00e0o c\u1ea7n gi\u1ea3i quy\u1ebft b\u1ea1n ch\u1ec9 c\u1ea7n l\u00ean Google ho\u1eb7c v\u00e0o trong di\u1ec5n \u0111\u00e0n th\u1ea7n th\u00e1nh Stackoverflow, b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 r\u1ea5t nhi\u1ec7t t\u00ecnh t\u1eeb c\u1ed9ng \u0111\u1ed3ng.<br><br><\/p>\n\n\n\n<p>Laravel thay \u0111\u1ed5i t\u00edch c\u1ef1c trong c\u00e1c phi\u00ean b\u1ea3n v\u00e0 c\u00f3 nh\u1eefng g\u00f3i th\u01b0 vi\u1ec7n t\u1ed1t nh\u1ea5t \u0111\u01b0\u1ee3c t\u00edch h\u1ee3p v\u00e0o. H\u1ec7 sinh th\u00e1i xung quanh Laravel c\u0169ng to\u00e0n nh\u1eefng s\u1ea3n ph\u1ea9m t\u1ed1t nh\u1ea5t trong l\u0129nh v\u1ef1c c\u1ee7a n\u00f3.<br><br><\/p>\n\n\n\n<p>\u0110\u00e2y l\u00e0 m\u1ed9t framework tuy\u1ec7t v\u1eddi \u0111\u1ed1i v\u1edbi l\u1eadp tr\u00ecnh vi\u00ean c\u00f3 kinh nghi\u1ec7m v\u00e0 c\u1ea3 nh\u1eefng b\u1ea1n m\u1edbi b\u1eaft \u0111\u1ea7u t\u1eadp t\u00e0nh, b\u1ea1n kh\u00f4ng c\u1ea7n ph\u1ea3i bi\u1ebft nhi\u1ec1u v\u1ec1 PHP nh\u01b0ng v\u1eabn c\u00f3 th\u1ec3 h\u1ecdc v\u00e0 l\u00e0m vi\u1ec7c tr\u00ean Laravel m\u00e0 kh\u00f4ng g\u1eb7p qu\u00e1 nhi\u1ec1u kh\u00f3 kh\u0103n.<br><br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Nh\u1eefng \u0111i\u1ec1u c\u1ea7n bi\u1ebft v\u1ec1 Laravel<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Laravel Artisan<\/h3>\n\n\n\n<p>Artisan l\u00e0 giao di\u1ec7n command-line c\u00f3 s\u1eb5n trong laravel. N\u00f3 cung c\u1ea5p m\u1ed9t l\u01b0\u1ee3ng l\u1edbn c\u00e2u l\u1ec7nh commands h\u1ed7 tr\u1ee3 ch\u00fang ta khi \u0111ang x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng.<br><br><\/p>\n\n\n\n<p>Nh\u01b0 \u0111\u00e3 n\u00f3i \u0111\u1ebfn \u1edf trong c\u00e2u tri\u1ebft l\u00fd c\u1ee7a Laravel c\u00f3 c\u00e2u \u201c<em>We\u2019ve already<\/em> <em>laid the foundation \u2014 freeing you to create without sweating the small things.<\/em>\u201d t\u1ea1m d\u1ecbch \u201c<em>ch\u00fang t\u00f4i x\u00e2y d\u1ef1ng n\u1ec1n t\u1ea3ng \u0111\u1ec3 gi\u00fap ki\u1ebfn t\u1ea1o m\u00e0 kh\u00f4ng c\u1ea7n b\u1eadn t\u00e2m \u0111\u1ebfn nh\u1eefng th\u1ee9 nh\u1ecf nh\u1eb7t<\/em>\u201d.<br><br><\/p>\n\n\n\n<p>B\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o ra file \u0111\u1ec3 th\u1ef1c hi\u1ec7n nhi\u1ec7m v\u1ee5 migration, model, seeder, controller v\u1edbi vi\u1ec7c g\u00f5 l\u1ec7nh command line trong d\u1ef1 \u00e1n Laravel, kh\u00f4ng nh\u1eefng t\u1ea1o ra c\u00e1c file \u0111\u00f3 m\u00e0 c\u00f2n gi\u00fap b\u1ea1n setup code c\u01a1 b\u1ea3n gi\u00fap gi\u1ea3m thi\u1ec3u th\u1eddi gian v\u00e0 t\u1eadp trung v\u00e0o vi\u1ec7c vi\u1ebft nh\u1eefng ch\u1ee9c n\u0103ng cho ch\u01b0\u01a1ng tr\u00ecnh.<\/p>\n\n\n\n<p><br>VD: T\u1ea1o controller b\u1eb1ng cmd php artisan make:controller UserController<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"615\" src=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103228\/Screen-Shot-2020-06-12-at-10.27.46-AM-1024x615.png\" alt=\"\" class=\"wp-image-509\" srcset=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103228\/Screen-Shot-2020-06-12-at-10.27.46-AM-1024x615.png 1024w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103228\/Screen-Shot-2020-06-12-at-10.27.46-AM-300x180.png 300w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103228\/Screen-Shot-2020-06-12-at-10.27.46-AM-768x461.png 768w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103228\/Screen-Shot-2020-06-12-at-10.27.46-AM.png 1438w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p><br>Artisan gi\u00fap b\u1ea1n gi\u1ea3m thi\u1ec3u th\u1eddi gian vi\u1ebft code c\u0169ng nh\u01b0 t\u1ef1 \u0111\u1ed9ng ho\u00e1 m\u1ed9t s\u1ed1 c\u00f4ng vi\u1ec7c. B\u1ea1n s\u1eed d\u1ee5ng c\u00e2u l\u1ec7nh php artisan list \u0111\u1ec3 xem danh s\u00e1ch c\u00e1c c\u00e2u l\u1ec7nh h\u1ed7 tr\u1ee3.<br><br><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">M\u00f4 h\u00ecnh MVC<\/h3>\n\n\n\n<p>Laravel \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng v\u00e0 ph\u00e1t tri\u1ec3n theo <a href=\"https:\/\/www.marketenterprise.vn\/blog\/gioi-thieu-mo-hinh-mvc-trong-lap-trinh.html\">m\u00f4 h\u00ecnh MVC <\/a>(Model-View-Controller) nh\u1edd \u0111\u00f3 m\u00e0 c\u1ea5u tr\u00fac v\u00e0 c\u00e1ch t\u1ed5 ch\u1ee9c code trong project \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp m\u1ed9t c\u00e1ch h\u1ee3p l\u00fd d\u1ec5 d\u00e0ng cho vi\u1ec7c b\u1ea3o tr\u00ec c\u0169ng nh\u01b0 ph\u00e1t tri\u1ec3n v\u1ec1 l\u00e2u d\u00e0i.<br><br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"841\" height=\"681\" src=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12141703\/Untitled-Diagram-10.png\" alt=\"laravel10\" class=\"wp-image-519\" srcset=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12141703\/Untitled-Diagram-10.png 841w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12141703\/Untitled-Diagram-10-300x243.png 300w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12141703\/Untitled-Diagram-10-768x622.png 768w\" sizes=\"auto, (max-width: 841px) 100vw, 841px\" \/><\/figure>\n\n\n\n<p><br><br>Sau khi Client truy c\u1eadp v\u00e0o link th\u00ec router s\u1ebd ph\u1ea3i \u0111i\u1ec1u h\u01b0\u1edbng qua Middleware \u0111\u1ec3 ki\u1ec3m tra Request \u0111\u00f3 c\u00f3 \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n truy c\u1eadp v\u00e0o Controller hay kh\u00f4ng. N\u1ebfu \u0111\u1ee7 th\u00ec Controller s\u1ebd x\u1eed l\u00fd request \u0111\u00f3 v\u00e0 l\u1ea5y d\u1eef li\u1ec7u t\u1eeb Model, Model s\u1ebd l\u1ea5y d\u1eef li\u1ec7u t\u1eeb Database v\u00e0 x\u1eed l\u00fd n\u00f3 tr\u01b0\u1edbc khi tr\u1ea3 l\u1ea1i cho Controller, Controller sau khi nh\u1eadn \u0111\u01b0\u1ee3c d\u1eef li\u1ec7u th\u00ec \u0111\u01b0a cho View \u0111\u1ed5 d\u1eef li\u1ec7u xu\u1ed1ng template, sau \u0111\u00f3 render ra HTML ho\u1eb7c JSON r\u1ed3i tr\u1ea3 Response cho Client. \u0110\u00e2y l\u00e0 m\u00f4 h\u00ecnh ho\u1ea1t \u0111\u1ed9ng MVC, \u0111\u01b0\u1ee3c chia ra r\u00f5 r\u00e0ng, m\u1ed7i b\u1ed9 ph\u1eadn x\u1eed l\u00fd m\u1ed9t nhi\u1ec7m v\u1ee5 n\u00ean coder ch\u1ec9 vi\u1ec7c x\u00e2y d\u1ef1ng ch\u1ee9c n\u0103ng cho m\u1ed7i giai \u0111o\u1ea1n \u0111\u00f3 n\u00ean s\u1ea3n ph\u1ea9m l\u00e0m ra r\u1ea5t d\u1ec5 b\u1ea3o tr\u00ec v\u00e0 n\u00e2ng c\u1ea5p.<br><br><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Blade template<\/h3>\n\n\n\n<p>Laravel h\u1ed7 tr\u1ee3 chia nh\u1ecf t\u1eebng ph\u1ea7n c\u1ee7a template ra, v\u00ed d\u1ee5: 1 template s\u1ebd c\u00f3 b\u1ed1 c\u1ee5c c\u00e1c ph\u1ea7n nh\u01b0 header, body, footer, aside, menu navbar b\u1ea1n c\u00f3 th\u1ec3 chia m\u1ed7i ph\u1ea7n c\u1ee7a template ra t\u1eebng file ri\u00eang (file template \u0111\u00f3 c\u00f3 \u0111u\u00f4i .blade.php) cho d\u1ec5 qu\u1ea3n l\u00fd, b\u1ea3o tr\u00ec r\u1ed3i g\u1eafn v\u00e0o trong layout master.<br><br><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"348\" src=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103437\/Screen-Shot-2020-06-12-at-10.28.07-AM-1024x348.png\" alt=\"\" class=\"wp-image-511\" srcset=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103437\/Screen-Shot-2020-06-12-at-10.28.07-AM-1024x348.png 1024w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103437\/Screen-Shot-2020-06-12-at-10.28.07-AM-300x102.png 300w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103437\/Screen-Shot-2020-06-12-at-10.28.07-AM-768x261.png 768w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103437\/Screen-Shot-2020-06-12-at-10.28.07-AM.png 1440w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p><br>Laravel c\u0169ng cung c\u1ea5p c\u00fa ph\u00e1p \u0111\u01a1n gi\u1ea3n cho vi\u1ec7c \u0111\u1ed5 d\u1eef li\u1ec7u xu\u1ed1ng template m\u00e0 kh\u00f4ng b\u1ecb r\u1ed1i m\u1eaft nh\u01b0 s\u1eed d\u1ee5ng c\u1eb7p th\u1ebb &lt;?php ?&gt; th\u00f4ng th\u01b0\u1eddng:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"233\" src=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103518\/Screen-Shot-2020-06-12-at-10.28.14-AM-1024x233.png\" alt=\"\" class=\"wp-image-512\" srcset=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103518\/Screen-Shot-2020-06-12-at-10.28.14-AM-1024x233.png 1024w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103518\/Screen-Shot-2020-06-12-at-10.28.14-AM-300x68.png 300w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103518\/Screen-Shot-2020-06-12-at-10.28.14-AM-768x175.png 768w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103518\/Screen-Shot-2020-06-12-at-10.28.14-AM.png 1422w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><br>S\u1eed d\u1ee5ng Laravel<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"233\" src=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103551\/Screen-Shot-2020-06-12-at-10.28.21-AM-1024x233.png\" alt=\"\" class=\"wp-image-513\" srcset=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103551\/Screen-Shot-2020-06-12-at-10.28.21-AM-1024x233.png 1024w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103551\/Screen-Shot-2020-06-12-at-10.28.21-AM-300x68.png 300w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103551\/Screen-Shot-2020-06-12-at-10.28.21-AM-768x175.png 768w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103551\/Screen-Shot-2020-06-12-at-10.28.21-AM.png 1424w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Eloquent ORM<\/h3>\n\n\n\n<p>Eloquent ORM \u0111i k\u00e8m v\u1edbi Laravel cung c\u1ea5p m\u1ed9t API ActiveRecord \u0111\u01a1n gi\u1ea3n v\u00e0 ti\u1ec7n l\u1ee3i cho vi\u1ec7c giao ti\u1ebfp v\u1edbi database. M\u1ed7i database table s\u1ebd c\u00f3 m\u1ed9t &#8220;Model&#8221; t\u01b0\u01a1ng \u1ee9ng \u0111\u1ec3 t\u01b0\u01a1ng t\u00e1c v\u1edbi table \u0111\u00f3. Model cho ph\u00e9p t\u01b0\u01a1ng t\u00e1c v\u1edbi d\u1eef li\u1ec7u trong table, li\u00ean k\u1ebft c\u00e1c b\u1ea3ng d\u1eef li\u1ec7u (relationship database). v\u1edbi c\u00fa ph\u00e1p \u0111\u01a1n gi\u1ea3n d\u1ec5 hi\u1ec3u v\u00e0 \u0111\u01b0\u1ee3c h\u1ec7 th\u1ed1ng, n\u00ean d\u1ec5 b\u1ea3o tr\u00ec code v\u00e0 c\u0169ng d\u1ec5 h\u1ecdc \u0111\u1ed1i v\u1edbi c\u00e1c b\u1ea1n m\u1edbi.<br><br><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Middleware<\/h3>\n\n\n\n<p>Middleware n\u1eb1m gi\u1eefa c\u00e1c request v\u00e0 response. N\u00f3 n\u1eb1m gi\u1eefa router v\u00e0 controller. middleware c\u00f3 nhi\u1ec7m v\u1ee5 l\u1ecdc request c\u00f3 \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n cho ph\u00e9p ti\u1ebfp t\u1ee5c th\u1ef1c hi\u1ec7n c\u00e1c h\u00e0m trong controller.<br><br><\/p>\n\n\n\n<p>Laravel cung c\u1ea5p m\u1ed9t c\u00fa ph\u00e1p t\u00f9y bi\u1ebfn v\u00e0 d\u1ec5 s\u1eed d\u1ee5ng gi\u00fap l\u1eadp tr\u00ecnh vi\u00ean d\u1ec5 d\u00e0ng s\u1eed d\u1ee5ng c\u0169ng nh\u01b0 ch\u1ec9nh s\u1eeda sao cho th\u00edch h\u1ee3p v\u1edbi d\u1ef1 \u00e1n.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"103\" src=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103620\/Screen-Shot-2020-06-12-at-10.28.30-AM-1024x103.png\" alt=\"\" class=\"wp-image-514\" srcset=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103620\/Screen-Shot-2020-06-12-at-10.28.30-AM-1024x103.png 1024w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103620\/Screen-Shot-2020-06-12-at-10.28.30-AM-300x30.png 300w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103620\/Screen-Shot-2020-06-12-at-10.28.30-AM-768x77.png 768w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103620\/Screen-Shot-2020-06-12-at-10.28.30-AM.png 1496w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><br>\u0110\u0103ng k\u00fd m\u1ed9t router v\u00e0 nh\u1edd middleware xem x\u00e9t \u0111i\u1ec1u ki\u1ec7n, n\u1ebfu tho\u1ea3&nbsp; ki\u1ec7n s\u1ebd \u0111i \u0111\u1ebfn h\u00e0m trong controller.<\/p>\n\n\n\n<p>T\u1ea1o ra m\u1ed9t file middleware php b\u1eb1ng l\u1ec7nh cmd:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"57\" src=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103732\/Screen-Shot-2020-06-12-at-10.28.38-AM-1024x57.png\" alt=\"\" class=\"wp-image-515\" srcset=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103732\/Screen-Shot-2020-06-12-at-10.28.38-AM-1024x57.png 1024w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103732\/Screen-Shot-2020-06-12-at-10.28.38-AM-300x17.png 300w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103732\/Screen-Shot-2020-06-12-at-10.28.38-AM-768x42.png 768w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103732\/Screen-Shot-2020-06-12-at-10.28.38-AM.png 1410w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u0110\u1ec3 x\u00e9t \u0111i\u1ec1u ki\u1ec7n c\u1ee7a request tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n h\u00e0m trong controller<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"713\" src=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103753\/Screen-Shot-2020-06-12-at-10.28.46-AM-1024x713.png\" alt=\"\" class=\"wp-image-516\" srcset=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103753\/Screen-Shot-2020-06-12-at-10.28.46-AM-1024x713.png 1024w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103753\/Screen-Shot-2020-06-12-at-10.28.46-AM-300x209.png 300w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103753\/Screen-Shot-2020-06-12-at-10.28.46-AM-768x534.png 768w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103753\/Screen-Shot-2020-06-12-at-10.28.46-AM.png 1414w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p><br>\u0110\u1ec3 middleware ho\u1ea1t \u0111\u1ed9ng ch\u00fang ta c\u00f2n m\u1ed9t b\u01b0\u1edbc \u0111\u0103ng k\u00fd Middleware trong file app\/Http\/Kernel.php v\u00e0 trong thu\u1ed9c t\u00ednh $routeMiddleware. Trong thu\u1ed9c t\u00ednh n\u00e0y \u0111\u00e3 ch\u1ee9a m\u1ed9t s\u1ed1 class middleware m\u1eb7c \u0111\u1ecbnh<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"477\" src=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103825\/Screen-Shot-2020-06-12-at-10.28.54-AM-1024x477.png\" alt=\"\" class=\"wp-image-517\" srcset=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103825\/Screen-Shot-2020-06-12-at-10.28.54-AM-1024x477.png 1024w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103825\/Screen-Shot-2020-06-12-at-10.28.54-AM-300x140.png 300w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103825\/Screen-Shot-2020-06-12-at-10.28.54-AM-768x358.png 768w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103825\/Screen-Shot-2020-06-12-at-10.28.54-AM-1536x715.png 1536w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103825\/Screen-Shot-2020-06-12-at-10.28.54-AM-1568x730.png 1568w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/06\/12103825\/Screen-Shot-2020-06-12-at-10.28.54-AM.png 1692w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">T\u00f3m l\u1ea1i<\/h2>\n\n\n\n<p>Laravel l\u00e0 framework PHP d\u1ec5 h\u1ecdc cho ng\u01b0\u1eddi m\u1edbi nh\u01b0ng c\u0169ng r\u1ea5t m\u1ea1nh m\u1ebd \u0111\u1ec3 d\u00f9ng cho c\u00e1c d\u1ef1 \u00e1n l\u1edbn.<\/p>\n\n\n\n<p>M\u00ecnh c\u0169ng l\u00e0 ng\u01b0\u1eddi b\u1eaft \u0111\u1ea7u h\u1ecdc Laravel m\u00e0 ch\u01b0a bi\u1ebft g\u00ec v\u1ec1 PHP (\u0111\u00fang h\u01a1n l\u00e0 ch\u01b0a bi\u1ebft g\u00ec v\u1ec1 l\u1eadp tr\u00ecnh backend), n\u00f3i v\u1eady \u0111\u1ee7 bi\u1ebft Laravel d\u1ec5 s\u1eed d\u1ee5ng v\u00e0 \u0111\u01b0\u1ee3c h\u1ec7 th\u1ed1ng d\u1ec5 hi\u1ec3u k\u1ec3 c\u1ea3 c\u00e1c b\u1ea1n m\u1edbi b\u1eaft \u0111\u1ea7u c\u0169ng c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng ti\u1ebfp c\u1eadn l\u00e0m d\u1ef1 \u00e1n. V\u00e0 nh\u01b0 m\u1ed9t l\u1ebd d\u0129 nhi\u00ean c\u1ee7a \u0111\u1eddi th\u01b0\u1eddng, \u201cc\u00e1i g\u00ec kh\u00f4ng bi\u1ebft th\u00ec l\u00ean Google\u201d n\u01a1i m\u1ecdi th\u1eafc m\u1eafc hay g\u1eb7p Bug c\u0169ng s\u1ebd nhanh ch\u00f3ng t\u00ecm ra c\u00e1ch gi\u1ea3i quy\u1ebft. Hy v\u1ecdng b\u00e0i vi\u1ebft n\u00e0y c\u00f3 \u00edch cho c\u00e1c b\u1ea1n m\u1edbi h\u1ecdc v\u1ec1 Laravel v\u00e0 c\u1ea3m \u01a1n c\u00e1c b\u1ea1n \u0111\u00e3 \u0111\u1ecdc t\u1edbi c\u00e2u ch\u1eef cu\u1ed1i c\u00f9ng.<br><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>H\u00f4m nay, m\u1eddi c\u00e1c b\u1ea1n c\u00f9ng MarketEnterprise Vietnam (MEVN) h\u1ecdc v\u1ec1 Laravel nh\u00e9! <\/p>\n","protected":false},"author":12,"featured_media":518,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[29,34,22],"class_list":["post-507","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-laravel","tag-marketenterprise-vietnam","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/posts\/507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/comments?post=507"}],"version-history":[{"count":0,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/posts\/507\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/media\/518"}],"wp:attachment":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/media?parent=507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/categories?post=507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/tags?post=507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}