* * @param string $path * @return string */ public function hash($path) { return md5_file($path); } /** * Write the contents of a file. * * @param string $path * @param string $contents * @param bool $lock * @return int */ public function put($path, $contents, $lock = false) { return file_put_contents($path, $contents, $lock ? LOCK_EX : 0); } /** * Prepend to a file. * * @param string $path * @param string $data * @return int */ public function prepend($path, $data) { if ($this->exists($path)) { return $this->put($path, $data.$this->get($path)); } return $this->put($path, $data); } /** * Append to a file.
"file_put_contents(/home/admin/domains/vietchem.com.vn/public_html/storage/framework/cache/data/0b/e1/0be1f4372a7fb22854be55c4493e417f90bc2bbe): failed to open stream: No such file or directory"
* * @param string $path * @return string */ public function hash($path) { return md5_file($path); } /** * Write the contents of a file. * * @param string $path * @param string $contents * @param bool $lock * @return int */ public function put($path, $contents, $lock = false) { return file_put_contents($path, $contents, $lock ? LOCK_EX : 0); } /** * Prepend to a file. * * @param string $path * @param string $data * @return int */ public function prepend($path, $data) { if ($this->exists($path)) { return $this->put($path, $data.$this->get($path)); } return $this->put($path, $data); } /** * Append to a file.
"/home/admin/domains/vietchem.com.vn/public_html/storage/framework/cache/data/0b/e1/0be1f4372a7fb22854be55c4493e417f90bc2bbe"
""" 9999999999O:42:"Illuminate\Pagination\LengthAwarePaginator":9:{s:8:"\x00*\x00total";i:4;s:11:"\x00*\x00lastPage";i:1;s:8:"\x00*\x00items";O:29:"Illuminate\Support\Collection":1:{s:8:"\x00*\x00items";a:4:{i:0;O:8:"stdClass":20:{s:2:"id";i:1559;s:11:"category_id";s:3:"294";s:8:"brand_id";i:158;s:3:"sku";N;s:4:"name";s:31:"Cáng cứu thương Việt Nam";s:4:"slug";s:24:"cang-cuu-thuong-viet-nam";s:5:"image";s:77:"https://vietchem.com.vn/uploads/vietchem/2018/07/cang-cuu-thuong-viet-nam.jpg";s:6:"slides";s:0:"";s:11:"description";s:412:"Cáng cứu thương hay còn gọi là cáng y tế được sản xuất tại Việt Nam. Chất liệu: thép,vải bạt, có thể gấp gọn. Là đồ dùng không thể thiếu ở các trung tâm y tế như bệnh viện, các địa điểm y tế; chuyên dùng trong cứu chữa và di chuyển bệnh nhân; sử dụng chủ yếu cho cấp cứu khi gặp tai nạn, thiên tai, lũ lụt, …";s:14:"specifications";s:2123:"<table style="margin-left: auto; margin-right: auto; width: 730px;" border="có">\r\n <tbody>\r\n <tr>\r\n <td style="width: 149px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Tên sản phẩm</strong></span></p>\r\n </td>\r\n <td style="width: 572px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Cáng cứu thương Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 149px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Tên gọi khác</strong></span></p>\r\n </td>\r\n <td style="width: 572px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Cáng y tế, cáng vải bạt</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 149px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Hãng – Xuất xứ</strong></span></p>\r\n </td>\r\n <td style="width: 572px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 149px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Ứng dụng</strong></span></p>\r\n </td>\r\n <td style="width: 572px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Chuyên dụng trong y tế và được dùng nhiều trong các tai nạn, thiên tai, lũ lụt giúp cứu chữa và di chuyển người bệnh nhanh nhất tới cơ sở y tế, bệnh viện...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 149px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Mô tả sản phẩm</strong></span></p>\r\n </td>\r\n <td style="width: 572px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Loại: Có thể gấp gọn</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Màu sắc: Bộ đội</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Chất liệu: thép,vải bạt</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:380000;s:10:"price_high";i:460000;s:6:"detail";N;s:9:"catalogue";s:0:"";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-07-20 15:48:43";s:10:"updated_at";s:19:"2019-12-18 18:31:08";s:4:"unit";N;}i:1;O:8:"stdClass":20:{s:2:"id";i:1560;s:11:"category_id";s:3:"294";s:8:"brand_id";i:158;s:3:"sku";N;s:4:"name";s:53:"Túi sơ cấp cứu y tế loại A, B, C Việt Nam";s:4:"slug";s:39:"tui-so-cap-cuu-y-te-loai-a-b-c-viet-nam";s:5:"image";s:92:"https://vietchem.com.vn/uploads/vietchem/2018/07/tui-so-cap-cuu-y-te-loai-a-b-c-viet-nam.jpg";s:6:"slides";s:0:"";s:11:"description";s:285:"Túi sơ cấp cứu y tế loại A, B, C được sản xuất tại Việt Nam. Túi đuợc thiết kế chuyên nghiệp, năng động, dễ di chuyển. Sơ cấp cứu mọi lúc mọi nơi. Bảo vệ sức khỏe con người, cũng như bảo vệ tài sản doanh nghiệp.";s:14:"specifications";s:2594:"<table style="margin-left: auto; margin-right: auto; width: 713.5px;" border="có">\r\n <tbody>\r\n <tr style="height: 51px;">\r\n <td style="width: 131px; height: 51px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Tên sản phẩm</strong></span></p>\r\n </td>\r\n <td style="width: 573.5px; height: 51px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Túi sơ cấp cứu y tế loại A, B, C Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 29px;">\r\n <td style="width: 131px; height: 29px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Hãng – Xuất xứ</strong></span></p>\r\n </td>\r\n <td style="width: 573.5px; height: 29px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 67px;">\r\n <td style="width: 131px; height: 67px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Ứng dụng</strong></span></p>\r\n </td>\r\n <td style="width: 573.5px; height: 67px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Dùng để sơ cấp cứu khi có sự cố, tai nạn trong lao động. Thích hợp cho doanh nghiệp, công ty, trường học.</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 247px;">\r\n <td style="width: 131px; height: 247px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Mô tả sản phẩm</strong></span></p>\r\n </td>\r\n <td style="width: 573.5px; height: 247px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Màu sắc: 3 màu đỏ, đen, trắng.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Túi sơ cứu y tế gồm có các loại: A ,B,C theo thông tư quy định của bộ y tế</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Túi sơ cứu loại A (theo TT19/2016/TT-BYT ngày 30 tháng 6 năm 2016 của Bộ trưởng Bộ Y tế): KT: 30 x 22 x 22 cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Túi sơ cứu loại B (theo TT19/2016/TT-BYT ngày 30 tháng 6 năm 2016 của Bộ trưởng Bộ Y tế): KT: 35 x 22 x 22 cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Túi sơ cứu loại C (theo TT19/2016/TT-BYT ngày 30 tháng 6 năm 2016 của Bộ trưởng Bộ Y tế): KT: 40 x 30 x 22 cm</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:950000;s:10:"price_high";i:1100000;s:6:"detail";N;s:9:"catalogue";s:0:"";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-07-20 15:48:43";s:10:"updated_at";s:19:"2019-12-18 18:31:39";s:4:"unit";N;}i:2;O:8:"stdClass":20:{s:2:"id";i:1577;s:11:"category_id";s:3:"294";s:8:"brand_id";i:158;s:3:"sku";N;s:4:"name";s:42:"Tủ thuốc cho doanh nghiệp Việt Nam";s:4:"slug";s:34:"tu-thuoc-cho-doanh-nghiep-viet-nam";s:5:"image";s:87:"https://vietchem.com.vn/uploads/vietchem/2018/07/tu-thuoc-cho-doanh-nghiep-viet-nam.jpg";s:6:"slides";s:0:"";s:11:"description";s:478:"Tủ thuốc cho doanh nghiệp được sản xuất tại Việt Nam với đầy đủ kích thước tùy theo yêu cầu và mục đích sử dụng. Tủ thuốc không chỉ dùng trong doanh nghiệp mà còn được sử dụng phổ biến trong trường học, gia đình, y tế, bệnh viện. Tủ thuốc cho doanh nghiệp phải chuẩn theo quy định của bộ y tế và lắp đặt đúng vị trí thuận tiện, dễ dàng cho người sử dụng.";s:14:"specifications";s:2353:"<table style="margin-left: auto; margin-right: auto; width: 725px;" border="có">\r\n <tbody>\r\n <tr>\r\n <td style="width: 128px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Tên sản phẩm:</strong></span></p>\r\n </td>\r\n <td style="width: 596px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Tủ thuốc cho doanh nghiệp Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 128px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Hãng – Xuất xứ:</strong></span></p>\r\n </td>\r\n <td style="width: 596px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 128px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Ứng dụng:</strong></span></p>\r\n </td>\r\n <td style="width: 596px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Tủ thuốc được sử dụng phổ biến trong doanh nghiệp, trường học, gia đình, y tế, bệnh viện.</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 128px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Mô tả sản phẩm:</strong></span></p>\r\n </td>\r\n <td style="width: 596px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Chủng loại: tủ y tế, tủ thuốc gia đình, tủ thuốc trường học, tủ thuốc doanh nghiệp….</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước: Tùy chọn, gồm có nhiều kích cỡ</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước:350*250*150cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước: 28*35*15 cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước: 30*40*17 cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước: 35*50*20 cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước tủ y tế doanh nghiệp :100*45*183cm</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:280000;s:10:"price_high";i:360000;s:6:"detail";N;s:9:"catalogue";s:0:"";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-07-20 15:48:43";s:10:"updated_at";s:19:"2019-12-18 18:33:11";s:4:"unit";N;}i:3;O:8:"stdClass":20:{s:2:"id";i:1579;s:11:"category_id";s:3:"294";s:8:"brand_id";i:158;s:3:"sku";N;s:4:"name";s:53:"Túi sơ cứu chấn thương cấp cứu Việt Nam";s:4:"slug";s:39:"tui-so-cuu-chan-thuong-cap-cuu-viet-nam";s:5:"image";s:92:"https://vietchem.com.vn/uploads/vietchem/2018/07/tui-so-cuu-chan-thuong-cap-cuu-viet-nam.jpg";s:6:"slides";s:0:"";s:11:"description";s:511:"Túi sơ cứu y tế được dùng trong doanh nghiệp luôn phải trang bị đầy đủ các dụng cụ y tế để chăm sóc sức khỏe người lao động. Tùy theo từng mục đích sơ, cấp cứu và danh mục của từng túi sơ cứu loại A, B, C thì sẽ có những cấp độ yêu cầu cụ thể khác nhau theo quy định của thông tư 19/2016 Bộ y tế (Ban hành kèm theo Thông tư số 19/2016/TT-BYT ngày 30 tháng 6 năm 2016 của Bộ trưởng Bộ Y tế).";s:14:"specifications";s:2231:"<table style="margin-left: auto; margin-right: auto;" border="có" width="600">\r\n <tbody>\r\n <tr>\r\n <td width="142">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Tên sản phẩm</strong></span></p>\r\n </td>\r\n <td width="539">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Túi sơ cứu chấn thương cấp cứu Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="142">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Model</strong></span></p>\r\n </td>\r\n <td width="539">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Túi loại A, Túi Loại B, Túi Loại C</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="142">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Hãng – Xuất xứ</strong></span></p>\r\n </td>\r\n <td width="539">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="142">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Ứng dụng</strong></span></p>\r\n </td>\r\n <td width="539">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Dùng để sơ cấp cứu khi có sự cố, tai nạn trong lao động. Thích hợp cho doanh nghiệp, công ty, trường học…</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="142">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Mô tả sản phẩm</strong></span></p>\r\n </td>\r\n <td width="539">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Màu sắc: màu đỏ, màu đen</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Nội dung và số lượng túi sơ cứu thực hiện theo quy định tại Phụ lục 4 ban hành kèm theo Thông tư 19/2016.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Các túi sơ cứu phải được đặt tại khu vực làm việc của người lao động, tại nơi dễ thấy, dễ lấy, có ký hiệu chữ thập.</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:2050000;s:10:"price_high";i:2460000;s:6:"detail";s:24902:"<p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>QUY ĐỊNH VỀ TÚI SƠ CỨU TẠI NƠI LÀM VIỆC</strong></span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>1. Yêu cầu chung</strong></span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Số lượng túi sơ cứu trang bị phù hợp với số lượng người lao động theo quy định tại mục 2;</span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Đối với mỗi mặt bằng, tầng nhà làm việc hoặc bộ phận làm việc cơ động phải bố trí tối thiểu 01 túi sơ cứu phù hợp;</span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Các túi sơ cứu tại nơi làm việc phải có đủ số lượng trang bị dụng cụ tối thiểu cần thiết để sơ cứu theo quy định tại mục 3. Không sử dụng để chứa các vật dụng khác;</span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kiểm tra thường xuyên để đảm bảo đầy đủ số lượng và nội dung túi sơ cứu theo quy định.</span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>2. Quy định số lượng túi đối với khu vực làm việc</strong></span></p>\r\n <table border="có" width="100%">\r\n <tbody>\r\n <tr>\r\n <td style="text-align: left;" width="7%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">TT</span></strong></span></p>\r\n </td>\r\n <td style="text-align: left;" width="44%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">Quy mô khu vực làm việc</span></strong></span></p>\r\n </td>\r\n <td style="text-align: left;" width="48%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">Số lượng và loại túi</span></strong></span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="7%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">1</span></strong></span></p>\r\n </td>\r\n <td width="44%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">≤ 25 người lao động</span></p>\r\n </td>\r\n <td width="48%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Có ít nhất 01 túi sơ cứu loại A</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="7%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">2</span></strong></span></p>\r\n </td>\r\n <td width="44%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Từ 26 - 50 người lao động</span></p>\r\n </td>\r\n <td width="48%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Có ít nhất 01 túi sơ cứu loại B</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="7%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">3</span></strong></span></p>\r\n </td>\r\n <td width="44%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Từ 51 - 150 người lao động</span></p>\r\n </td>\r\n <td width="48%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Có ít nhất 01 túi sơ cứu loại C</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>* Ghi chú:</strong> 01 túi B tương dương với 02 túi A và 01 túi C tương đương với 02 túi B.</span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>3. Quy định nội dung trang bị cho 01 túi</strong></span></p>\r\n <table border="có" width="100%">\r\n <tbody>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>STT</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Yêu cầu trang bị tối thiểu</strong></span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Túi A</strong></span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Túi B</strong></span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Túi C</strong></span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>1</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng dính (cuộn)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>2</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng kích thước 5 x 200 cm (cuộn)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>3</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng kích thước 10 x 200 cm (cuộn)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>4</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng kích thước 15 x 200 cm (cuộn)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>5</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng tam giác (cái)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>6</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng chun</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>7</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Gạc thấm nước (10 miếng/gói)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>8</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Bông hút nước (gói)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">05</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">07</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">10</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>9</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Garo cao su cỡ 6 x 100 cm (cái)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>10</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Garo cao su cỡ 4 x 100 cm (cái)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>11</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Kéo cắt băng</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>12</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Panh không mấu thẳng kích thước 16 - 18 cm</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>13</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Panh không mấu cong kích thước 16- 18 cm</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>14</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Găng tay khám bệnh (đôi)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">05</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">10</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">20</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>15</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Mặt nạ phòng độc thích hợp</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>16</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nước muối sinh lý NaCl 9 ‰ (lọ 500ml)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">03</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;" rowspan="3">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>17</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Dung dịch sát trùng (lọ):</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"> </span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"> </span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"> </span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Cồn 70°</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Dung dịch Betadine</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>18</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Kim băng an toàn (các cỡ)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">10</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">20</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">30</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>19</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Tấm lót nilon không thấm nước</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>20</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Phác đồ sơ cứu</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>21</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Kính bảo vệ mắt</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>22</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Phiếu ghi danh mục trang thiết bị có trong túi</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>23</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nẹp cổ (cái)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>24</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nẹp cánh tay (bộ)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>25</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nẹp cẳng tay (bộ)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>26</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nẹp đùi (bộ)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>27</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nẹp cẳng chân (bộ)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>(*)</strong> <strong>Ghi chú:</strong> Từ mục 24 - 27: cất giữ bảo quản cùng vị trí với nơi để túi sơ cứu.</span></p>";s:9:"catalogue";s:0:"";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-07-20 15:48:43";s:10:"updated_at";s:19:"2019-12-18 18:34:33";s:4:"unit";N;}}}s:10:"\x00*\x00perPage";i:12;s:14:"\x00*\x00currentPage";i:1;s:7:"\x00*\x00path";s:46:"https://vietchem.com.vn/phuong-tien-so-cap-cuu";s:8:"\x00*\x00query";a:0:{}s:11:"\x00*\x00fragment";N;s:11:"\x00*\x00pageName";s:4:"page";} """
2
*/ public function get($key) { return $this->getPayload($key)['data'] ?? null; } /** * Store an item in the cache for a given number of minutes. * * @param string $key * @param mixed $value * @param float|int $minutes * @return void */ public function put($key, $value, $minutes) { $this->ensureCacheDirectoryExists($path = $this->path($key)); $this->files->put( $path, $this->expiration($minutes).serialize($value), true ); } /** * Create the file cache directory if necessary. * * @param string $path * @return void */ protected function ensureCacheDirectoryExists($path) { if (! $this->files->exists(dirname($path))) { $this->files->makeDirectory(dirname($path), 0777, true, true); } } /** * Increment the value of an item in the cache. * * @param string $key
"/home/admin/domains/vietchem.com.vn/public_html/storage/framework/cache/data/0b/e1/0be1f4372a7fb22854be55c4493e417f90bc2bbe"
""" 9999999999O:42:"Illuminate\Pagination\LengthAwarePaginator":9:{s:8:"\x00*\x00total";i:4;s:11:"\x00*\x00lastPage";i:1;s:8:"\x00*\x00items";O:29:"Illuminate\Support\Collection":1:{s:8:"\x00*\x00items";a:4:{i:0;O:8:"stdClass":20:{s:2:"id";i:1559;s:11:"category_id";s:3:"294";s:8:"brand_id";i:158;s:3:"sku";N;s:4:"name";s:31:"Cáng cứu thương Việt Nam";s:4:"slug";s:24:"cang-cuu-thuong-viet-nam";s:5:"image";s:77:"https://vietchem.com.vn/uploads/vietchem/2018/07/cang-cuu-thuong-viet-nam.jpg";s:6:"slides";s:0:"";s:11:"description";s:412:"Cáng cứu thương hay còn gọi là cáng y tế được sản xuất tại Việt Nam. Chất liệu: thép,vải bạt, có thể gấp gọn. Là đồ dùng không thể thiếu ở các trung tâm y tế như bệnh viện, các địa điểm y tế; chuyên dùng trong cứu chữa và di chuyển bệnh nhân; sử dụng chủ yếu cho cấp cứu khi gặp tai nạn, thiên tai, lũ lụt, …";s:14:"specifications";s:2123:"<table style="margin-left: auto; margin-right: auto; width: 730px;" border="có">\r\n <tbody>\r\n <tr>\r\n <td style="width: 149px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Tên sản phẩm</strong></span></p>\r\n </td>\r\n <td style="width: 572px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Cáng cứu thương Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 149px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Tên gọi khác</strong></span></p>\r\n </td>\r\n <td style="width: 572px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Cáng y tế, cáng vải bạt</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 149px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Hãng – Xuất xứ</strong></span></p>\r\n </td>\r\n <td style="width: 572px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 149px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Ứng dụng</strong></span></p>\r\n </td>\r\n <td style="width: 572px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Chuyên dụng trong y tế và được dùng nhiều trong các tai nạn, thiên tai, lũ lụt giúp cứu chữa và di chuyển người bệnh nhanh nhất tới cơ sở y tế, bệnh viện...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 149px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Mô tả sản phẩm</strong></span></p>\r\n </td>\r\n <td style="width: 572px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Loại: Có thể gấp gọn</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Màu sắc: Bộ đội</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Chất liệu: thép,vải bạt</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:380000;s:10:"price_high";i:460000;s:6:"detail";N;s:9:"catalogue";s:0:"";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-07-20 15:48:43";s:10:"updated_at";s:19:"2019-12-18 18:31:08";s:4:"unit";N;}i:1;O:8:"stdClass":20:{s:2:"id";i:1560;s:11:"category_id";s:3:"294";s:8:"brand_id";i:158;s:3:"sku";N;s:4:"name";s:53:"Túi sơ cấp cứu y tế loại A, B, C Việt Nam";s:4:"slug";s:39:"tui-so-cap-cuu-y-te-loai-a-b-c-viet-nam";s:5:"image";s:92:"https://vietchem.com.vn/uploads/vietchem/2018/07/tui-so-cap-cuu-y-te-loai-a-b-c-viet-nam.jpg";s:6:"slides";s:0:"";s:11:"description";s:285:"Túi sơ cấp cứu y tế loại A, B, C được sản xuất tại Việt Nam. Túi đuợc thiết kế chuyên nghiệp, năng động, dễ di chuyển. Sơ cấp cứu mọi lúc mọi nơi. Bảo vệ sức khỏe con người, cũng như bảo vệ tài sản doanh nghiệp.";s:14:"specifications";s:2594:"<table style="margin-left: auto; margin-right: auto; width: 713.5px;" border="có">\r\n <tbody>\r\n <tr style="height: 51px;">\r\n <td style="width: 131px; height: 51px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Tên sản phẩm</strong></span></p>\r\n </td>\r\n <td style="width: 573.5px; height: 51px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Túi sơ cấp cứu y tế loại A, B, C Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 29px;">\r\n <td style="width: 131px; height: 29px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Hãng – Xuất xứ</strong></span></p>\r\n </td>\r\n <td style="width: 573.5px; height: 29px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 67px;">\r\n <td style="width: 131px; height: 67px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Ứng dụng</strong></span></p>\r\n </td>\r\n <td style="width: 573.5px; height: 67px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Dùng để sơ cấp cứu khi có sự cố, tai nạn trong lao động. Thích hợp cho doanh nghiệp, công ty, trường học.</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 247px;">\r\n <td style="width: 131px; height: 247px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Mô tả sản phẩm</strong></span></p>\r\n </td>\r\n <td style="width: 573.5px; height: 247px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Màu sắc: 3 màu đỏ, đen, trắng.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Túi sơ cứu y tế gồm có các loại: A ,B,C theo thông tư quy định của bộ y tế</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Túi sơ cứu loại A (theo TT19/2016/TT-BYT ngày 30 tháng 6 năm 2016 của Bộ trưởng Bộ Y tế): KT: 30 x 22 x 22 cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Túi sơ cứu loại B (theo TT19/2016/TT-BYT ngày 30 tháng 6 năm 2016 của Bộ trưởng Bộ Y tế): KT: 35 x 22 x 22 cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Túi sơ cứu loại C (theo TT19/2016/TT-BYT ngày 30 tháng 6 năm 2016 của Bộ trưởng Bộ Y tế): KT: 40 x 30 x 22 cm</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:950000;s:10:"price_high";i:1100000;s:6:"detail";N;s:9:"catalogue";s:0:"";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-07-20 15:48:43";s:10:"updated_at";s:19:"2019-12-18 18:31:39";s:4:"unit";N;}i:2;O:8:"stdClass":20:{s:2:"id";i:1577;s:11:"category_id";s:3:"294";s:8:"brand_id";i:158;s:3:"sku";N;s:4:"name";s:42:"Tủ thuốc cho doanh nghiệp Việt Nam";s:4:"slug";s:34:"tu-thuoc-cho-doanh-nghiep-viet-nam";s:5:"image";s:87:"https://vietchem.com.vn/uploads/vietchem/2018/07/tu-thuoc-cho-doanh-nghiep-viet-nam.jpg";s:6:"slides";s:0:"";s:11:"description";s:478:"Tủ thuốc cho doanh nghiệp được sản xuất tại Việt Nam với đầy đủ kích thước tùy theo yêu cầu và mục đích sử dụng. Tủ thuốc không chỉ dùng trong doanh nghiệp mà còn được sử dụng phổ biến trong trường học, gia đình, y tế, bệnh viện. Tủ thuốc cho doanh nghiệp phải chuẩn theo quy định của bộ y tế và lắp đặt đúng vị trí thuận tiện, dễ dàng cho người sử dụng.";s:14:"specifications";s:2353:"<table style="margin-left: auto; margin-right: auto; width: 725px;" border="có">\r\n <tbody>\r\n <tr>\r\n <td style="width: 128px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Tên sản phẩm:</strong></span></p>\r\n </td>\r\n <td style="width: 596px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Tủ thuốc cho doanh nghiệp Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 128px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Hãng – Xuất xứ:</strong></span></p>\r\n </td>\r\n <td style="width: 596px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 128px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Ứng dụng:</strong></span></p>\r\n </td>\r\n <td style="width: 596px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Tủ thuốc được sử dụng phổ biến trong doanh nghiệp, trường học, gia đình, y tế, bệnh viện.</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 128px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Mô tả sản phẩm:</strong></span></p>\r\n </td>\r\n <td style="width: 596px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Chủng loại: tủ y tế, tủ thuốc gia đình, tủ thuốc trường học, tủ thuốc doanh nghiệp….</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước: Tùy chọn, gồm có nhiều kích cỡ</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước:350*250*150cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước: 28*35*15 cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước: 30*40*17 cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước: 35*50*20 cm</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kích thước tủ y tế doanh nghiệp :100*45*183cm</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:280000;s:10:"price_high";i:360000;s:6:"detail";N;s:9:"catalogue";s:0:"";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-07-20 15:48:43";s:10:"updated_at";s:19:"2019-12-18 18:33:11";s:4:"unit";N;}i:3;O:8:"stdClass":20:{s:2:"id";i:1579;s:11:"category_id";s:3:"294";s:8:"brand_id";i:158;s:3:"sku";N;s:4:"name";s:53:"Túi sơ cứu chấn thương cấp cứu Việt Nam";s:4:"slug";s:39:"tui-so-cuu-chan-thuong-cap-cuu-viet-nam";s:5:"image";s:92:"https://vietchem.com.vn/uploads/vietchem/2018/07/tui-so-cuu-chan-thuong-cap-cuu-viet-nam.jpg";s:6:"slides";s:0:"";s:11:"description";s:511:"Túi sơ cứu y tế được dùng trong doanh nghiệp luôn phải trang bị đầy đủ các dụng cụ y tế để chăm sóc sức khỏe người lao động. Tùy theo từng mục đích sơ, cấp cứu và danh mục của từng túi sơ cứu loại A, B, C thì sẽ có những cấp độ yêu cầu cụ thể khác nhau theo quy định của thông tư 19/2016 Bộ y tế (Ban hành kèm theo Thông tư số 19/2016/TT-BYT ngày 30 tháng 6 năm 2016 của Bộ trưởng Bộ Y tế).";s:14:"specifications";s:2231:"<table style="margin-left: auto; margin-right: auto;" border="có" width="600">\r\n <tbody>\r\n <tr>\r\n <td width="142">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Tên sản phẩm</strong></span></p>\r\n </td>\r\n <td width="539">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Túi sơ cứu chấn thương cấp cứu Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="142">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Model</strong></span></p>\r\n </td>\r\n <td width="539">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Túi loại A, Túi Loại B, Túi Loại C</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="142">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Hãng – Xuất xứ</strong></span></p>\r\n </td>\r\n <td width="539">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Việt Nam</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="142">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Ứng dụng</strong></span></p>\r\n </td>\r\n <td width="539">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Dùng để sơ cấp cứu khi có sự cố, tai nạn trong lao động. Thích hợp cho doanh nghiệp, công ty, trường học…</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="142">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Mô tả sản phẩm</strong></span></p>\r\n </td>\r\n <td width="539">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Màu sắc: màu đỏ, màu đen</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Nội dung và số lượng túi sơ cứu thực hiện theo quy định tại Phụ lục 4 ban hành kèm theo Thông tư 19/2016.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Các túi sơ cứu phải được đặt tại khu vực làm việc của người lao động, tại nơi dễ thấy, dễ lấy, có ký hiệu chữ thập.</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:2050000;s:10:"price_high";i:2460000;s:6:"detail";s:24902:"<p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>QUY ĐỊNH VỀ TÚI SƠ CỨU TẠI NƠI LÀM VIỆC</strong></span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>1. Yêu cầu chung</strong></span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Số lượng túi sơ cứu trang bị phù hợp với số lượng người lao động theo quy định tại mục 2;</span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Đối với mỗi mặt bằng, tầng nhà làm việc hoặc bộ phận làm việc cơ động phải bố trí tối thiểu 01 túi sơ cứu phù hợp;</span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Các túi sơ cứu tại nơi làm việc phải có đủ số lượng trang bị dụng cụ tối thiểu cần thiết để sơ cứu theo quy định tại mục 3. Không sử dụng để chứa các vật dụng khác;</span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Kiểm tra thường xuyên để đảm bảo đầy đủ số lượng và nội dung túi sơ cứu theo quy định.</span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>2. Quy định số lượng túi đối với khu vực làm việc</strong></span></p>\r\n <table border="có" width="100%">\r\n <tbody>\r\n <tr>\r\n <td style="text-align: left;" width="7%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">TT</span></strong></span></p>\r\n </td>\r\n <td style="text-align: left;" width="44%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">Quy mô khu vực làm việc</span></strong></span></p>\r\n </td>\r\n <td style="text-align: left;" width="48%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">Số lượng và loại túi</span></strong></span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="7%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">1</span></strong></span></p>\r\n </td>\r\n <td width="44%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">≤ 25 người lao động</span></p>\r\n </td>\r\n <td width="48%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Có ít nhất 01 túi sơ cứu loại A</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="7%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">2</span></strong></span></p>\r\n </td>\r\n <td width="44%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Từ 26 - 50 người lao động</span></p>\r\n </td>\r\n <td width="48%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Có ít nhất 01 túi sơ cứu loại B</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width="7%">\r\n <p><span style="color: #000000;"><strong><span style="font-family: arial, helvetica, sans-serif;">3</span></strong></span></p>\r\n </td>\r\n <td width="44%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Từ 51 - 150 người lao động</span></p>\r\n </td>\r\n <td width="48%">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Có ít nhất 01 túi sơ cứu loại C</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>* Ghi chú:</strong> 01 túi B tương dương với 02 túi A và 01 túi C tương đương với 02 túi B.</span></p>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>3. Quy định nội dung trang bị cho 01 túi</strong></span></p>\r\n <table border="có" width="100%">\r\n <tbody>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>STT</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Yêu cầu trang bị tối thiểu</strong></span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Túi A</strong></span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Túi B</strong></span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>Túi C</strong></span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>1</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng dính (cuộn)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>2</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng kích thước 5 x 200 cm (cuộn)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>3</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng kích thước 10 x 200 cm (cuộn)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>4</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng kích thước 15 x 200 cm (cuộn)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>5</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng tam giác (cái)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>6</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Băng chun</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>7</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Gạc thấm nước (10 miếng/gói)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>8</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Bông hút nước (gói)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">05</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">07</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">10</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>9</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Garo cao su cỡ 6 x 100 cm (cái)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>10</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Garo cao su cỡ 4 x 100 cm (cái)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>11</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Kéo cắt băng</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>12</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Panh không mấu thẳng kích thước 16 - 18 cm</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>13</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Panh không mấu cong kích thước 16- 18 cm</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>14</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Găng tay khám bệnh (đôi)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">05</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">10</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">20</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>15</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Mặt nạ phòng độc thích hợp</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>16</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nước muối sinh lý NaCl 9 ‰ (lọ 500ml)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">03</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;" rowspan="3">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>17</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Dung dịch sát trùng (lọ):</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"> </span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"> </span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"> </span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Cồn 70°</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">- Dung dịch Betadine</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>18</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Kim băng an toàn (các cỡ)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">10</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">20</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">30</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>19</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Tấm lót nilon không thấm nước</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>20</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Phác đồ sơ cứu</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>21</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Kính bảo vệ mắt</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">04</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">06</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>22</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Phiếu ghi danh mục trang thiết bị có trong túi</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>23</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nẹp cổ (cái)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>24</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nẹp cánh tay (bộ)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>25</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nẹp cẳng tay (bộ)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>26</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nẹp đùi (bộ)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 7.10701%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>27</strong></span></p>\r\n </td>\r\n <td style="width: 54.893%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">Nẹp cẳng chân (bộ)</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">01</span></p>\r\n </td>\r\n <td style="width: 12%;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; color: #000000;">02</span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p style="text-align: justify;"><span style="font-family: arial, helvetica, sans-serif; color: #000000;"><strong>(*)</strong> <strong>Ghi chú:</strong> Từ mục 24 - 27: cất giữ bảo quản cùng vị trí với nơi để túi sơ cứu.</span></p>";s:9:"catalogue";s:0:"";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-07-20 15:48:43";s:10:"updated_at";s:19:"2019-12-18 18:34:33";s:4:"unit";N;}}}s:10:"\x00*\x00perPage";i:12;s:14:"\x00*\x00currentPage";i:1;s:7:"\x00*\x00path";s:46:"https://vietchem.com.vn/phuong-tien-so-cap-cuu";s:8:"\x00*\x00query";a:0:{}s:11:"\x00*\x00fragment";N;s:11:"\x00*\x00pageName";s:4:"page";} """
true
* * @param string $key * @param mixed $value * @return int */ public function decrement($key, $value = 1) { return $this->increment($key, $value * -1); } /** * Store an item in the cache indefinitely. * * @param string $key * @param mixed $value * @return void */ public function forever($key, $value) { $this->put($key, $value, 0); } /** * Remove an item from the cache. * * @param string $key * @return bool */ public function forget($key) { if ($this->files->exists($file = $this->path($key))) { return $this->files->delete($file); } return false; } /** * Remove all items from the cache. *
"data_product_phuong-tien-so-cap-cuu_page_0"
LengthAwarePaginator {#758}
0
* * @param string $key * @param mixed $value * @return int|bool */ public function decrement($key, $value = 1) { return $this->store->decrement($key, $value); } /** * Store an item in the cache indefinitely. * * @param string $key * @param mixed $value * @return void */ public function forever($key, $value) { $this->store->forever($this->itemKey($key), $value); $this->event(new KeyWritten($key, $value, 0)); } /** * Get an item from the cache, or store the default value. * * @param string $key * @param \DateTimeInterface|\DateInterval|float|int $minutes * @param \Closure $callback * @return mixed */ public function remember($key, $minutes, Closure $callback) { $value = $this->get($key); // If the item exists in the cache we will just return this immediately and if // not we will execute the given Closure and cache the result of that for a // given number of minutes so it's available for all subsequent requests. if (! is_null($value)) {
"data_product_phuong-tien-so-cap-cuu_page_0"
LengthAwarePaginator {#758}
/** * Get an item from the cache, or store the default value forever. * * @param string $key * @param \Closure $callback * @return mixed */ public function rememberForever($key, Closure $callback) { $value = $this->get($key); // If the item exists in the cache we will just return this immediately and if // not we will execute the given Closure and cache the result of that for a // given number of minutes so it's available for all subsequent requests. if (! is_null($value)) { return $value; } $this->forever($key, $value = $callback()); return $value; } /** * Remove an item from the cache. * * @param string $key * @return bool */ public function forget($key) { return tap($this->store->forget($this->itemKey($key)), function () use ($key) { $this->event(new KeyForgotten($key)); }); } /** * {@inheritdoc} */
"data_product_phuong-tien-so-cap-cuu_page_0"
LengthAwarePaginator {#758}
* @param \Closure $callback * @return $this */ public function extend($driver, Closure $callback) { $this->customCreators[$driver] = $callback->bindTo($this, $this); return $this; } /** * Dynamically call the default driver instance. * * @param string $method * @param array $parameters * @return mixed */ public function __call($method, $parameters) { return $this->store()->$method(...$parameters); } }
} /** * Handle dynamic, static calls to the object. * * @param string $method * @param array $args * @return mixed * * @throws \RuntimeException */ public static function __callStatic($method, $args) { $instance = static::getFacadeRoot(); if (! $instance) { throw new RuntimeException('A facade root has not been set.'); } return $instance->$method(...$args); } }
// $data_product = $data_product -> orWhere('category_id',$v->id); } } } } // dump($cate_ids); // $data_categories_map = DB::table('products_categories_map')->select('product_id')->whereIn('category_id', $cate_ids)->pluck('product_id')->toArray(); $data_product = $data_product->whereIn('category_id',$cate_ids); if($brand_id>0){ $cache_name = 'data_product_'.$slug.'_brand_'.$brand_id; $data_product = Cache::rememberForever($cache_name, function() use ($data_product,$brand_id) { return $data_product->where('brand_id',$brand_id)->orderBy('orders','asc')->get(); }); //$data_product = $data_product->where('brand_id',$brand_id)->get(); }else{ $page = $request->get('page',0); $cache_name = 'data_product_'.$slug.'_page_'.$page; $data_product = Cache::rememberForever($cache_name, function() use ($data_product,$page_size) { return $data_product->orderBy('orders','asc')->paginate($page_size); }); //$data_product = $data_product->paginate($page_size); } $meta_seo = $this->meta_seo('products_categories',$data_cate->id,[ 'title' => $data_cate->name, 'description'=> cutString($data_cate->detail,160), 'url' => url('').url_cate($data_cate->slug) ]); $category_involve = DB::table('products_categories')->where('status',1)->where('parent_id',$data_cate->id)->limit($page_size_product_involve)->get(); $data_brand = Cache::rememberForever('data_brand_'.$slug, function() use ($cate_ids) { return DB::table('brands') ->select(['brands.*',DB::raw('count(products.id) as count')]) ->leftJoin('products','brands.id','=','products.brand_id') ->whereIn('products.category_id',$cate_ids) ->where('products.status',1)->where('brands.status',1) ->groupBy('products.brand_id') ->orderBy('count','DESC')->limit(10) ->get(); }); $admin_bar_edit = route('products_categories.edit', $data_cate->id); return view('web.category.show',compact('data_cate','data_product','meta_seo','category_involve','data_brand','page_size_brands','page_size_product_involve','cate_ids','brand_id','case_category','admin_bar_edit'));
/** * Get the middleware assigned to the controller. * * @return array */ public function getMiddleware() { return $this->middleware; } /** * Execute an action on the controller. * * @param string $method * @param array $parameters * @return \Symfony\Component\HttpFoundation\Response */ public function callAction($method, $parameters) { return call_user_func_array([$this, $method], $parameters); } /** * Handle calls to missing methods on the controller. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].'); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
"phuong-tien-so-cap-cuu"
/** * Get the middleware assigned to the controller. * * @return array */ public function getMiddleware() { return $this->middleware; } /** * Execute an action on the controller. * * @param string $method * @param array $parameters * @return \Symfony\Component\HttpFoundation\Response */ public function callAction($method, $parameters) { return call_user_func_array([$this, $method], $parameters); } /** * Handle calls to missing methods on the controller. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].'); } }
array:2 [ 0 => CategoryController {#423} 1 => "index" ]
array:2 [ 0 => Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" } "slug" => "phuong-tien-so-cap-cuu" ]
{ $this->container = $container; } /** * Dispatch a request to a given controller and method. * * @param \Illuminate\Routing\Route $route * @param mixed $controller * @param string $method * @return mixed */ public function dispatch(Route $route, $controller, $method) { $parameters = $this->resolveClassMethodDependencies( $route->parametersWithoutNulls(), $controller, $method ); if (method_exists($controller, 'callAction')) { return $controller->callAction($method, $parameters); } return $controller->{$method}(...array_values($parameters)); } /** * Get the middleware for the controller instance. * * @param \Illuminate\Routing\Controller $controller * @param string $method * @return array */ public function getMiddleware($controller, $method) { if (! method_exists($controller, 'getMiddleware')) { return []; } return collect($controller->getMiddleware())->reject(function ($data) use ($method) { return static::methodExcludedByOptions($method, $data['options']);
"index"
array:2 [ 0 => Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" } "slug" => "phuong-tien-so-cap-cuu" ]
protected function runCallable() { $callable = $this->action['uses']; return $callable(...array_values($this->resolveMethodDependencies( $this->parametersWithoutNulls(), new ReflectionFunction($this->action['uses']) ))); } /** * Run the route action and return the response. * * @return mixed * * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ protected function runController() { return $this->controllerDispatcher()->dispatch( $this, $this->getController(), $this->getControllerMethod() ); } /** * Get the controller instance for the route. * * @return mixed */ public function getController() { if (! $this->controller) { $class = $this->parseControllerCallback()[0]; $this->controller = $this->container->make(ltrim($class, '\\')); } return $this->controller; } /**
* * @throws \UnexpectedValueException */ protected function parseAction($action) { return RouteAction::parse($this->uri, $action); } /** * Run the route action and return the response. * * @return mixed */ public function run() { $this->container = $this->container ?: new Container; try { if ($this->isControllerAction()) { return $this->runController(); } return $this->runCallable(); } catch (HttpResponseException $e) { return $e->getResponse(); } } /** * Checks whether the route's action is a controller. * * @return bool */ protected function isControllerAction() { return is_string($this->action['uses']); } /** * Run the route action and return the response.
/** * Run the given route within a Stack "onion" instance. * * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware) ->then(function ($request) use ($route) { return $this->prepareResponse( $request, $route->run() ); }); } /** * Gather the middleware for the given route with resolved class names. * * @param \Illuminate\Routing\Route $route * @return array */ public function gatherRouteMiddleware(Route $route) { $middleware = collect($route->gatherMiddleware())->map(function ($name) { return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); })->flatten(); return $this->sortMiddleware($middleware); } /**
use Symfony\Component\Debug\Exception\FatalThrowableError; /** * This extended pipeline catches any exceptions that occur during each slice. * * The exceptions are converted to HTTP responses for proper middleware handling. */ class Pipeline extends BasePipeline { /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { try { return $destination($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry();
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
*/ public function __construct(Registrar $router) { $this->router = $router; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $this->router->substituteBindings($route = $request->route()); $this->router->substituteImplicitBindings($route); return $next($request); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#612 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#418 …} } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Illuminate\Session\TokenMismatchException */ public function handle($request, Closure $next) { if ( $this->isReading($request) || $this->runningUnitTests() || $this->inExceptArray($request) || $this->tokensMatch($request) ) { return $this->addCookieToResponse($request, $next($request)); } throw new TokenMismatchException; } /** * Determine if the HTTP request uses a ‘read’ verb. * * @param \Illuminate\Http\Request $request * @return bool */ protected function isReading($request) { return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']); } /** * Determine if the application is running unit tests. * * @return bool
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#708 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#612 …} : "Illuminate\Routing\Middleware\SubstituteBindings" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { // If the current session has an "errors" variable bound to it, we will share // its value with all view instances so the views can easily access errors // without having to bind. An empty bag is set when there aren't errors. $this->view->share( 'errors', $request->session()->get('errors') ?: new ViewErrorBag ); // Putting the errors in the view for every view allows the developer to just // assume that some errors are always available, which is convenient since // they don't have to continually run checks for the presence of errors. return $next($request); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#714 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#708 …} : "App\Http\Middleware\VerifyCsrfToken" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $this->sessionHandled = true; // If a session driver has been configured, we will need to start the session here // so that the data is ready for an application. Note that the Laravel sessions // do not make use of PHP "native" sessions in any way since they are crappy. if ($this->sessionConfigured()) { $request->setLaravelSession( $session = $this->startSession($request) ); $this->collectGarbage($session); } $response = $next($request); // Again, if the session has been configured we will need to close out the session // so that the attributes may be persisted to some storage medium. We will also // add the session identifier cookie to the application response headers now. if ($this->sessionConfigured()) { $this->storeCurrentUrl($request, $session); $this->addCookieToResponse($response, $session); } return $response; } /** * Perform any final actions for the request lifecycle. * * @param \Illuminate\Http\Request $request * @param \Symfony\Component\HttpFoundation\Response $response * @return void */
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#715 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#714 …} : "Illuminate\View\Middleware\ShareErrorsFromSession" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Create a new CookieQueue instance. * * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookies * @return void */ public function __construct(CookieJar $cookies) { $this->cookies = $cookies; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); foreach ($this->cookies->getQueuedCookies() as $cookie) { $response->headers->setCookie($cookie); } return $response; } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#716 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#715 …} : "Illuminate\Session\Middleware\StartSession" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Disable encryption for the given cookie name(s). * * @param string|array $cookieName * @return void */ public function disableFor($cookieName) { $this->except = array_merge($this->except, (array) $cookieName); } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { return $this->encrypt($next($this->decrypt($request))); } /** * Decrypt the cookies on the request. * * @param \Symfony\Component\HttpFoundation\Request $request * @return \Symfony\Component\HttpFoundation\Request */ protected function decrypt(Request $request) { foreach ($request->cookies as $key => $c) { if ($this->isDisabled($key)) { continue; } try { $request->cookies->set($key, $this->decryptCookie($c)); } catch (DecryptException $e) { $request->cookies->set($key, null); }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#717 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#716 …} : "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
public function via($method) { $this->method = $method; return $this; } /** * Run the pipeline with a final destination callback. * * @param \Closure $destination * @return mixed */ public function then(Closure $destination) { $pipeline = array_reduce( array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) ); return $pipeline($this->passable); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { return $destination($passable); }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware) ->then(function ($request) use ($route) { return $this->prepareResponse( $request, $route->run() ); }); } /** * Gather the middleware for the given route with resolved class names. * * @param \Illuminate\Routing\Route $route * @return array */ public function gatherRouteMiddleware(Route $route) { $middleware = collect($route->gatherMiddleware())->map(function ($name) { return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); })->flatten(); return $this->sortMiddleware($middleware); } /** * Sort the given middleware by priority. *
return $route; } /** * Return the response for the given route. * * @param Route $route * @param Request $request * @return mixed */ protected function runRoute(Request $request, Route $route) { $request->setRouteResolver(function () use ($route) { return $route; }); $this->events->dispatch(new Events\RouteMatched($route, $request)); return $this->prepareResponse($request, $this->runRouteWithinStack($route, $request) ); } /** * Run the given route within a Stack "onion" instance. * * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware)
Route {#374}
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatch(Request $request) { $this->currentRequest = $request; return $this->dispatchToRoute($request); } /** * Dispatch the request to a route and return the response. * * @param \Illuminate\Http\Request $request * @return mixed */ public function dispatchToRoute(Request $request) { return $this->runRoute($request, $this->findRoute($request)); } /** * Find the route matching a given request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Routing\Route */ protected function findRoute($request) { $this->current = $route = $this->routes->match($request); $this->container->instance(Route::class, $route); return $route; } /** * Return the response for the given route. *
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Route {#374}
* @return mixed */ public function respondWithRoute($name) { $route = tap($this->routes->getByName($name))->bind($this->currentRequest); return $this->runRoute($this->currentRequest, $route); } /** * Dispatch the request to the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatch(Request $request) { $this->currentRequest = $request; return $this->dispatchToRoute($request); } /** * Dispatch the request to a route and return the response. * * @param \Illuminate\Http\Request $request * @return mixed */ public function dispatchToRoute(Request $request) { return $this->runRoute($request, $this->findRoute($request)); } /** * Find the route matching a given request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Routing\Route */ protected function findRoute($request)
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @return void */ public function bootstrap() { if (! $this->app->hasBeenBootstrapped()) { $this->app->bootstrapWith($this->bootstrappers()); } } /** * Get the route dispatcher callback. * * @return \Closure */ protected function dispatchToRouter() { return function ($request) { $this->app->instance('request', $request); return $this->router->dispatch($request); }; } /** * Call the terminate method on any terminable middleware. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Response $response * @return void */ public function terminate($request, $response) { $this->terminateMiddleware($request, $response); $this->app->terminate(); } /** * Call the terminate method on any terminable middleware. *
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
use Symfony\Component\Debug\Exception\FatalThrowableError; /** * This extended pipeline catches any exceptions that occur during each slice. * * The exceptions are converted to HTTP responses for proper middleware handling. */ class Pipeline extends BasePipeline { /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { try { return $destination($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry();
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @param LaravelDebugbar $debugbar */ public function __construct(Container $container, LaravelDebugbar $debugbar) { $this->container = $container; $this->debugbar = $debugbar; $this->except = config('debugbar.except') ?: []; } /** * Handle an incoming request. * * @param Request $request * @param Closure $next * @return mixed */ public function handle($request, Closure $next) { if (!$this->debugbar->isEnabled() || $this->inExceptArray($request)) { return $next($request); } $this->debugbar->boot(); try { /** @var \Illuminate\Http\Response $response */ $response = $next($request); } catch (Exception $e) { $response = $this->handleException($request, $e); } catch (Error $error) { $e = new FatalThrowableError($error); $response = $this->handleException($request, $e); } // Modify the response to add the Debugbar $this->debugbar->modifyResponse($request, $response); return $response; }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#390 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#22 …} } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* The additional attributes passed to the middleware. * * @var array */ protected $attributes = []; /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next, ...$attributes) { $this->attributes = $attributes; $this->clean($request); return $next($request); } /** * Clean the request's data. * * @param \Illuminate\Http\Request $request * @return void */ protected function clean($request) { $this->cleanParameterBag($request->query); if ($request->isJson()) { $this->cleanParameterBag($request->json()); } else { $this->cleanParameterBag($request->request); } } /**
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#391 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#390 …} : "Barryvdh\Debugbar\Middleware\InjectDebugbar" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* The additional attributes passed to the middleware. * * @var array */ protected $attributes = []; /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next, ...$attributes) { $this->attributes = $attributes; $this->clean($request); return $next($request); } /** * Clean the request's data. * * @param \Illuminate\Http\Request $request * @return void */ protected function clean($request) { $this->cleanParameterBag($request->query); if ($request->isJson()) { $this->cleanParameterBag($request->json()); } else { $this->cleanParameterBag($request->request); } } /**
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#392 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#391 …} : "Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
class ValidatePostSize { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Illuminate\Http\Exceptions\PostTooLargeException */ public function handle($request, Closure $next) { $max = $this->getPostMaxSize(); if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) { throw new PostTooLargeException; } return $next($request); } /** * Determine the server 'post_max_size' as bytes. * * @return int */ protected function getPostMaxSize() { if (is_numeric($postMaxSize = ini_get('post_max_size'))) { return (int) $postMaxSize; } $metric = strtoupper(substr($postMaxSize, -1)); $postMaxSize = (int) $postMaxSize; switch ($metric) { case 'K': return $postMaxSize * 1024; case 'M':
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#393 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#392 …} : "App\Http\Middleware\TrimStrings" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Symfony\Component\HttpKernel\Exception\HttpException */ public function handle($request, Closure $next) { if ($this->app->isDownForMaintenance()) { $data = json_decode(file_get_contents($this->app->storagePath().'/framework/down'), true); throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']); } return $next($request); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#394 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#393 …} : "Illuminate\Foundation\Http\Middleware\ValidatePostSize" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
public function via($method) { $this->method = $method; return $this; } /** * Run the pipeline with a final destination callback. * * @param \Closure $destination * @return mixed */ public function then(Closure $destination) { $pipeline = array_reduce( array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) ); return $pipeline($this->passable); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { return $destination($passable); }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Send the given request through the middleware / router. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ protected function sendRequestThroughRouter($request) { $this->app->instance('request', $request); Facade::clearResolvedInstance('request'); $this->bootstrap(); return (new Pipeline($this->app)) ->send($request) ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware) ->then($this->dispatchToRouter()); } /** * Bootstrap the application for HTTP requests. * * @return void */ public function bootstrap() { if (! $this->app->hasBeenBootstrapped()) { $this->app->bootstrapWith($this->bootstrappers()); } } /** * Get the route dispatcher callback. * * @return \Closure */ protected function dispatchToRouter()
$router->middlewareGroup($key, $middleware); } foreach ($this->routeMiddleware as $key => $middleware) { $router->aliasMiddleware($key, $middleware); } } /** * Handle an incoming HTTP request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function handle($request) { try { $request->enableHttpMethodParameterOverride(); $response = $this->sendRequestThroughRouter($request); } catch (Exception $e) { $this->reportException($e); $response = $this->renderException($request, $e); } catch (Throwable $e) { $this->reportException($e = new FatalThrowableError($e)); $response = $this->renderException($request, $e); } $this->app['events']->dispatch( new Events\RequestHandled($request, $response) ); return $response; } /** * Send the given request through the middleware / router. *
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
*/ $app = require_once __DIR__.'/../bootstrap/app.php'; /* |-------------------------------------------------------------------------- | Run The Application |-------------------------------------------------------------------------- | | Once we have the application, we can handle the incoming request | through the kernel, and send the associated response back to | the client's browser allowing them to enjoy the creative | and wonderful application we have prepared for them. | */ $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); $response = $kernel->handle( $request = Illuminate\Http\Request::capture() ); $response->send(); $kernel->terminate($request, $response);
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/phuong-tien-so-cap-cuu" #requestUri: "/phuong-tien-so-cap-cuu" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#729} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
<?php /** * Laravel - A PHP Framework For Web Artisans * * @package Laravel * @author Taylor Otwell <taylor@laravel.com> */ $uri = urldecode( parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) ); // This file allows us to emulate Apache's "mod_rewrite" functionality from the // built-in PHP web server. This provides a convenient way to test a Laravel // application without having installed a "real" web server software here. if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { return false; } require_once __DIR__.'/public/index.php';
"/home/admin/domains/vietchem.com.vn/public_html/public/index.php"
Key | Value |
USER | "admin"
|
HOME | "/home/admin"
|
SCRIPT_NAME | "/index.php"
|
REQUEST_URI | "/phuong-tien-so-cap-cuu"
|
QUERY_STRING | "" |
REQUEST_METHOD | "GET"
|
SERVER_PROTOCOL | "HTTP/2.0"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
REDIRECT_URL | "/phuong-tien-so-cap-cuu"
|
REMOTE_PORT | "40716"
|
SCRIPT_FILENAME | "/home/admin/domains/vietchem.com.vn/private_html/index.php"
|
SERVER_ADMIN | "webmaster@vietchem.com.vn"
|
CONTEXT_DOCUMENT_ROOT | "/home/admin/domains/vietchem.com.vn/private_html"
|
CONTEXT_PREFIX | "" |
REQUEST_SCHEME | "https"
|
DOCUMENT_ROOT | "/home/admin/domains/vietchem.com.vn/private_html"
|
REMOTE_ADDR | "54.166.234.171"
|
SERVER_PORT | "443"
|
SERVER_ADDR | "45.117.169.137"
|
SERVER_NAME | "vietchem.com.vn"
|
SERVER_SOFTWARE | "Apache/2"
|
SERVER_SIGNATURE | "" |
PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
|
HTTP_HOST | "vietchem.com.vn"
|
HTTP_REFERER | "https://vietchem.com.vn/phuong-tien-so-cap-cuu/"
|
HTTP_USER_AGENT | "claudebot"
|
HTTP_ACCEPT | "*/*"
|
proxy-nokeepalive | "1"
|
H2_STREAM_TAG | "84-3"
|
H2_STREAM_ID | "3"
|
H2_PUSHED_ON | "" |
H2_PUSHED | "" |
H2_PUSH | "off"
|
H2PUSH | "off"
|
HTTP2 | "on"
|
SSL_TLS_SNI | "vietchem.com.vn"
|
HTTPS | "on"
|
SCRIPT_URI | "https://vietchem.com.vn/phuong-tien-so-cap-cuu"
|
SCRIPT_URL | "/phuong-tien-so-cap-cuu"
|
UNIQUE_ID | "ZfkhnNhh2rJnjGRacEWIOgAAVDg"
|
REDIRECT_STATUS | "200"
|
REDIRECT_H2_STREAM_TAG | "84-3"
|
REDIRECT_H2_STREAM_ID | "3"
|
REDIRECT_H2_PUSHED_ON | "" |
REDIRECT_H2_PUSHED | "" |
REDIRECT_H2_PUSH | "off"
|
REDIRECT_H2PUSH | "off"
|
REDIRECT_HTTP2 | "on"
|
REDIRECT_SSL_TLS_SNI | "vietchem.com.vn"
|
REDIRECT_HTTPS | "on"
|
REDIRECT_SCRIPT_URI | "https://vietchem.com.vn/phuong-tien-so-cap-cuu"
|
REDIRECT_SCRIPT_URL | "/phuong-tien-so-cap-cuu"
|
REDIRECT_UNIQUE_ID | "ZfkhnNhh2rJnjGRacEWIOgAAVDg"
|
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1710825884.5798
|
REQUEST_TIME | 1710825884
|
APP_NAME | "VietChem"
|
APP_ENV | "local"
|
APP_KEY | "base64:Fd8nDg5pcpyqXHpQuYNcfOhWx9a3P7bot+AOTCXe+gs="
|
APP_DEBUG | "true"
|
APP_LOG_LEVEL | "debug"
|
APP_URL | "https://vietchem.com.vn"
|
DEBUGBAR_ENABLED | "false"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "127.0.0.1"
|
DB_PORT | "3306"
|
DB_DATABASE | "admin_test"
|
DB_USERNAME | "admin_test"
|
DB_PASSWORD | "Vietchem@123"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
QUEUE_DRIVER | "sync"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "ses"
|
MAIL_HOST | "mailtrap.io"
|
MAIL_PORT | "2525"
|
MAIL_USERNAME | "null"
|
MAIL_PASSWORD | "null"
|
MAIL_ENCRYPTION | "null"
|
MAIL_FROM_ADDRESS | "no-reply@sudo.vn"
|
MAIL_FROM_NAME | "SudoCMS"
|
SES_REGION | "us-east-1"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
STORAGE_TYPE | "local"
|
Key | Value |
APP_NAME | "VietChem"
|
APP_ENV | "local"
|
APP_KEY | "base64:Fd8nDg5pcpyqXHpQuYNcfOhWx9a3P7bot+AOTCXe+gs="
|
APP_DEBUG | "true"
|
APP_LOG_LEVEL | "debug"
|
APP_URL | "https://vietchem.com.vn"
|
DEBUGBAR_ENABLED | "false"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "127.0.0.1"
|
DB_PORT | "3306"
|
DB_DATABASE | "admin_test"
|
DB_USERNAME | "admin_test"
|
DB_PASSWORD | "Vietchem@123"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
QUEUE_DRIVER | "sync"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "ses"
|
MAIL_HOST | "mailtrap.io"
|
MAIL_PORT | "2525"
|
MAIL_USERNAME | "null"
|
MAIL_PASSWORD | "null"
|
MAIL_ENCRYPTION | "null"
|
MAIL_FROM_ADDRESS | "no-reply@sudo.vn"
|
MAIL_FROM_NAME | "SudoCMS"
|
SES_REGION | "us-east-1"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
STORAGE_TYPE | "local"
|