Cơ bạn dạng về Laravel phần 2 phía dẫn dùng layout, và dùng 2 tủ sách nhằm tương tác với database là Eloquent ORM , Query Builder
Table of Contents
- Sử dụng layout vô Laravel
- Kết nối database vô Laravel
- Sử dụng Eloquent ORM
- Sử dụng query builder vô Laravel
Sử dụng layout vô Laravel
Layout là trang khuông, là khuôn mẫu sử dụng cho những công dụng vô trang web. Trong layout, rất có thể khái niệm sẵn nhiều vùng nhằm view con cái trả nội dung vô. Ví dụ vùng nội dung chủ yếu, vùng slider, vùng vấn đề té sung…
Bạn đang xem: eloquent là gì

File layout cũng chính là view, được lưu vô thư mục resources/views. Có 2 cơ hội tạo nên layout vô Laravel: Cách 1 là template Inheritance khá đơn giản và giản dị. Cách loại nhì là tạo nên layout dùng component, phức tạp rộng lớn. Sau đó là chỉ dẫn tạo nên layout với template inheritance
Các mệnh lệnh đặc trưng sử dụng vô layout
- @yield(‘tên’, ‘Nội dung’) dùng để tại vị thương hiệu cho một địa điểm vô layout. View con cái tiếp tục dựa trên thương hiệu yield để lấy nội dung vô layout.
- @section … @show là cú pháp dẫn đến 1 vùng vô trong vắt layout tuy nhiên những view con cái Từ đó tiếp tục trả nội dung vô.
Ví dụ:
@yield('tieudetrang', 'Giỏ hàng');
@section('spNoiBat')
<p> Sản phẩm nổi bật</p>
@show
Các mệnh lệnh sử dụng ở view con
@extends() – đó là mệnh lệnh sử dụng ở đầu view con cái, chỉ định và hướng dẫn layout tuy nhiên view con cái tiếp tục thừa kế.
@section… @endsection – mệnh lệnh này sử dụng vô view con cái muốn tạo 1 vùng nội dung cho tới layout.
@parent : sử dụng vô view con cái, nhằm lấy tài liệu vô của layout bỏ vô.
@section('spNoiBat')
<div class='sanpham’> SP1 </div>
<div class='sanpham’> SP2 </div>
<div class='sanpham’> SP3 </div>
<div class='sanpham’> SP4 </div>
@endsection
Thực luyện tạo nên layout
1. Tạo tệp tin views/app.blade.php và code
<!--views/app.blade.php-->
<head><title>Tech chain</title></head>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" >
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" > </script>
<body>
<div class="container">
<header class="row"> <div id="logo">TECH CHAIN </div> </header>
<nav class="row"> </nav>
<main class="row">
<article class="col-md-9">
@yield('noidung','Nội dung chính')
</article>
<aside class="col-md-3">
@section('sidebar')
<b>Thông tin yêu té sung</b>
@show
</aside>
</main>
<footer class="row"><p>Phát triển bởi vì Nguyễn Văn Long</p></footer>
</div>
</body>
2. Định dạng css
<style>
toàn thân > .container >header { height: 120px; background: #006400;}
toàn thân > .container > nav { height: 60px; background: Gainsboro }
toàn thân > .container > main { min-height: 600px;}
toàn thân > .container > main > article { background: FloralWhite }
toàn thân > .container > main > aside { background: GoldenRod}
toàn thân > .container > footer{
height: 60px; line-height: 60px;
text-align:center; background: LightSlateGray
}
toàn thân > .container > header > #logo {
font-family:impact; font-size: 42px;
margin-left: 50px; margin-top: 25px;
color: white; letter-spacing:2px;
}
</style>
3. Chỉ ấn định layout trong số view con
– Mở tệp tin views/home.blade.php và code lại sẽ được như sau
@extends('app')
@section('noidung')
<h1> Đây là trang chủ</h1>
<hr>
@include('spNoiBat')
<hr>
@include('spXemNhieu')
@endsection
– Tiếp tục phanh tệp tin views/spTrongLoai.blade.php và code lại sẽ được như sau
@extends('app')
@section('noidung')
<h1> Trang thành phầm vô loại {{ $id }} </h1>
<p> Sản phẩm vô loại 1 </p>
<p> Sản phẩm vô loại 2 </p>
<p> Sản phẩm vô loại 3 </p>
<p> Sản phẩm vô loại 4 </p>
@endsection
– Lại phanh tiếp tệp tin views/spDetail.blade.php và code lại sẽ được như sau
@extends('app') @section('noidung') <h1>Chi tiết thành phầm {{ $id }} </h1> @endsection
– Test



4. Cải thiện layout
Thanh menu: vô https://getbootstrap.com/docs/5.3/components/navbar/ và Copy code rồi Paste vô tag nav của tệp tin phầm mềm.blade.php . Sau bại liệt sửa đổi những item sẽ được như sau

Kết nối database vô Laravel
Kết nối cho tới database vô laravel cực kỳ đơn giản và dễ dàng, tự Laravel vẫn tương hỗ rất tuyệt.
1. Khai báo thông số kỹ thuật kết nối
Để liên kết cho tới database, các bạn chỉ việc khai báo thông số kỹ thuật vô tệp tin .env. Gồm vị trí mysql, thương hiệu database, user, pass

2. Tạo database và table
CREATE TABLE `sanpham` (
`id` int(11) NOT NULL,
`tensp` varchar(255) NOT NULL,
`giasp` int(11) NOT NULL DEFAULT 0,
`solanxem` int(11) NOT NULL DEFAULT 0,
`hot` tinyint(1) NOT NULL,
`mota` varchar(4000) DEFAULT NULL,
`hinh` varchar(255) DEFAULT NULL,
`ngay` date DEFAULT NULL,
`idLoai` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `loaisp` (
`id` int(11) NOT NULL,
`tenLoai` varchar(255) NOT NULL,
`soSP` int(11) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Nhập liệu
INSERT INTO `loaisp` (`id`, `tenLoai`, `soSP`, `created_at`, `updated_at`) VALUES
(1, 'Điện thoại di động', 190, NULL, NULL),
(2, 'Laptop', 178, NULL, NULL),
(3, 'Đồng hồ nước treo tay', 143, NULL, NULL),
(4, 'Gia dụng', 781, NULL, NULL),
(5, 'Đồ điện', 351, NULL, NULL);
INSERT INTO `sanpham` (`ID`, `tensp`, `giasp`, `solanxem`, `hot`, `mota`, `hinh`, `ngay`, `idLoai`, `created_at`, `updated_at`) VALUES
(1, 'Xiaomi Redmi Note 11', 5490000, 45, 1, 'Xiaomi Redmi Note 11 được coi như cái điện thoại thông minh có mức giá tầm trung tuyệt vời, với cùng một thông số kỹ thuật mạnh, cụm camera xịn sò, pin khỏe khoắn, sạc nhanh chóng tuy nhiên giá chỉ lại cực kỳ hợp lý và phải chăng.', 'https://cdn.tgdd.vn/Products/Images/42/245261/Xiaomi-redmi-note-11-blue-600x600.jpg', '2024-04-01', 1, NULL, NULL),
(2, 'IPhone 13 Pro Max 128GB', 33490000, 13, 0, 'Máy design ko bao nhiêu đột huỷ Lúc ví với những người nhiệm kỳ trước, màn hình hiển thị siêu rất đẹp, tần số quét dọn upgrade lên 120 Hz mượt tuy nhiên, cảm ứng camera với độ cao thấp rộng lớn hơn', 'https://cdn.tgdd.vn/Products/Images/42/230529/iphone-13-pro-max-xanh-la-thumb-600x600.jpg', '2024-04-02', 1, NULL, NULL),
(3, 'Vivo Y33s', 6990000, 133, 0, 'Vivo Y33s design tươi tắn với black color tráng gương và xanh rì ảo tưởng. Phiên bạn dạng black color được phủ lớp tráng gương sáng bóng loáng, rất có thể phát triển thành cái gương tiện lợi', 'https://cdn.tgdd.vn/Products/Images/42/249102/Vivo-y33s-yellow-thumb-600x600.jpg', '2024-04-03', 1, NULL, NULL),
(4, 'OPPO Reno7 Z 5G', 10490000, 321, 1, 'Sản phẩm với design OPPO Glow độc quyền, camera đem cảm giác như máy DSLR có trách nhiệm nằm trong viền sáng sủa kép, với thông số kỹ thuật mạnh mẽ và tự tin và đạt ghi nhận xếp thứ hạng A về phỏng mượt.', 'https://cdn.tgdd.vn/Products/Images/42/271717/oppo-reno7-z-5g-thumb-1-1-600x600.jpg', '2024-04-04', 1, NULL, NULL),
(5, 'Samsung Galaxy A03 3GB', 2990000, 5, 1, 'Là điện thoại cảm ứng Galaxy A thứ nhất của phòng Samsung vô năm 2022 bên trên VN. Sản phẩm có mức giá dễ dàng tiếp cận, camera chủ yếu cho tới 48 MP, pin 5000 mAh tự do thoải mái dùng một ngày dài.', 'https://cdn.tgdd.vn/Products/Images/42/251856/samsung-galaxy-a03-xanh-thumb-600x600.jpg', '2024-04-02', 1, NULL, NULL),
(6, 'Samsung Galaxy A52s 5G', 10990000, 34, 1, 'Điện thoại Galaxy A52s 5G là phiên bạn dạng upgrade của Galaxy A52 5G, với nước ngoài hình ko thay đổi tuy nhiên được upgrade đáng chú ý về thông số kỹ thuật thông số kỹ thuật bên phía trong.', 'https://cdn.tgdd.vn/Products/Images/42/247507/samsung-galaxy-a52s-5g-mint-600x600.jpg', '2024-04-07', 1, NULL, NULL),
(7, 'Laptop Acer TravelMate', 5490000, 77, 1, 'Laptop Acer TravelMate B3 TMB311 31 C2HB (NX.VNFSV.006) nhắm cho tới phân khúc thị trường máy vi tính học hành - văn chống, đáp ứng cho những nhu yếu cơ bạn dạng bên trên máy vi tính, với độ cao thấp không gồ gề và tính năng đầy đủ sử dụng, là việc lựa lựa chọn chất lượng tốt cho tới học viên, SV. Thiết kế tiếp không gồ gề, tính địa hình cao. Acer TravelMate B3 với lượng máy chỉ 1.4 kilogam, phỏng dày trăng tròn.99 milimet, design lịch lãm, thích mắt với lớp vỏ vật liệu bằng nhựa black color đơn giản và giản dị kèm cặp logo thương hiệu tinh xảo ở góc cạnh trái ngược bên trên mặt mũi sườn lưng, đơn giản và dễ dàng nằm trong các bạn xuất hiện tại ở từng điểm.', 'https://cdn.tgdd.vn/Products/Images/44/265015/Slider/vi-vn-acer-travelmate-b3-tmb311-31-c2hb-nxvnfsv006-thumbvideo.jpg', '2024-04-07', 2, NULL, NULL),
(8, 'MacBook Pro 14 M1 Pro', 42490000, 231, 0, 'Apple vẫn trình làng Apple MacBook phiên bản Pro 14 inch vô mon 10/2023, mang 1 dung mạo mới mẻ nằm trong cỗ vi xử nguyên do thương hiệu tự động trở nên tân tiến, không chỉ là cho tới tính năng hơn hẳn mà còn phải chiếm hữu màn hình hiển thị với tài năng hiển thị thực sự tuyệt vời, khiến cho bản thân mê mệt Lúc tóm bên trên tay thưởng thức. Sức mạnh tính năng đỉnh cao hơn nữa khi nào không còn. Apple MacBook phiên bản Pro 14 inch đem vô bản thân cỗ vi xử lý M1 Pro được phát hành bởi vì tiến thủ trình 5 nm văn minh, tích phù hợp 8 lõi CPU với 6 lõi hiệu suất cao và 2 lõi tiết kiệm chi phí năng lượng điện năng, hứa hứa hẹn tài năng xử lý nhanh chóng rộng lớn cho tới 70% đối với CPU của M1, bên cạnh đó hạn chế năng lượng điện năng hấp phụ đáng chú ý nhằm kéo dãn dài thời gian PIN.', 'https://cdn.tgdd.vn/Products/Images/44/253581/Slider/vi-vn-macbook-pro-14-m1-pro-2021-8-core-cpu-thumbvideo.jpg', '2024-04-02', 2, NULL, NULL),
(9, 'Laptop HP 15s i3', 9990000, 672, 1, 'Laptop HP 15s fq2662TU i3 (6K795PA) tiếp tục là việc lựa lựa chọn tương thích cho tới học viên, SV mong muốn thám thính tìm tòi một cái máy vi tính học hành - văn chống chiếm hữu thông số kỹ thuật ổn định ấn định, đáp ứng nhu cầu chất lượng tốt từng nhu yếu cơ bạn dạng và một nấc giá chỉ hoàn hảo, đơn giản và dễ dàng tiếp cận. Laptop HP cơ bạn dạng được bao quanh bởi vì lớp vỏ vật liệu bằng nhựa màu sắc bạc, mang lại vẻ rất đẹp tối giản tuy nhiên cũng ko kém cỏi phần lịch lãm, thanh nhã. Khối lượng 1.7 kilogam tương hỗ các bạn bỏ vô túi ba lô đơn giản và dễ dàng và mang lại từng tất cả điểm nhằm học hành, thao tác làm việc. Các cổng liên kết như USB Type-C, USB A, HDMI, khe gọi thẻ lưu giữ SD và Jack tai nghe 3.5 milimet được chuẩn bị xung xung quanh máy vi tính được chấp nhận các bạn liên kết với những trang bị nước ngoài vi khác ví như loa, loài chuột, máy chiếu,... nhanh gọn lẹ rộng lớn tuy nhiên ko sử dụng dây cáp rườm kiểm tra.', 'https://cdn.tgdd.vn/Products/Images/44/284190/Slider/vi-vn-hp-15s-fq2662tu-i3-6k795pa-1.jpg', '2024-05-01', 2, NULL, NULL),
(10, 'Lenovo Ideapad 15IAU7', 12690000, 14, 0, 'Laptop Lenovo Ideapad 3 15IAU7 i3 (82RK005LVN) tiếp tục là một trong người các bạn sát cánh ý hợp tâm đầu cho tới chúng ta học viên, SV hoặc dân văn chống với nước ngoài hình lịch lãm, văn minh nằm trong tính năng mạnh mẽ và tự tin tới từ con cái chip Hãng Intel Gen 12 hiện đại. Laptop Lenovo Ideapad giải quyết và xử lý chất lượng tốt từng tác vụ của một cái máy vi tính học hành - văn chống kể từ cơ bạn dạng cho tới nâng lên nhờ việc phối kết hợp của cục vi xử lý Hãng Intel bộ vi xử lý Core i3 1215U nằm trong VGA Hãng Intel UHD Graphics. Vừa chạy tệp tin Excel nặng trĩu vừa phải coi phim vui chơi nhiều nhiệm vẫn cực kỳ mượt tuy nhiên nhờ bộ lưu trữ RAM 8 GB. Không gian giảo tàng trữ rộng thoải mái nhờ ổ cứng SSD 256 GB rất có thể thi công thanh không giống tối nhiều 1 TB. Sắc xám đơn giản và giản dị tuy nhiên ko kém cỏi phần văn minh, thanh nhã canh ty người chủ chiếm hữu nó nổi trội ở từng tất cả điểm. Laptop với keyboard số khiến cho bạn đơn giản và dễ dàng nhập liệu rộng lớn. ', 'https://cdn.tgdd.vn/Products/Images/44/287769/Slider/vi-vn-lenovo-ideapad-3-15iau7-i3-82rk005lvn-thumbvideo.jpg', '2024-05-01', 2, NULL, NULL),
(11, 'Asus Vivobook 14X i3', 12590000, 97, 1, 'Nếu các bạn là học viên, SV hoặc nhân viên cấp dưới văn chống thì tránh việc bỏ lỡ cái máy vi tính Hãng Asus Vivobook 14X A1403ZA i3 (LY143W) - một phiên bạn dạng máy vi tính học hành - văn chống của phòng Hãng Asus đáp ứng nhu cầu chất lượng tốt những tác vụ quan trọng nhất hằng ngày nhờ chiếm hữu con cái chip Hãng Intel Gen 12 mạnh mẽ và tự tin. Sự xuất hiện tại của cục vi xử lý Hãng Intel bộ vi xử lý Core i3 1220P đã hỗ trợ cái máy vi tính Hãng Asus giải quyết và xử lý tuyệt đối hoàn hảo từng tác vụ học hành, thao tác làm việc hằng ngày, kèm cặp Từ đó là thẻ Hãng Intel UHD Graphics vừa lòng ham mê tạo ra của người tiêu dùng với những việc làm chỉnh hình ảnh, design cơ bạn dạng. RAM 8 GB mang lại tài năng nhiều nhiệm mượt tuy nhiên đồng thời nhiều hành lang cửa số trình duyệt không giống nhau, bên cạnh đó tăng vận tốc gọi ghi nhanh chóng rộng lớn đáng chú ý đối với mới nhiệm kỳ trước nhờ ổ cứng SSD 512 GB.', 'https://cdn.tgdd.vn/Products/Images/44/285770/Slider/vi-vn-asus-vivobook-14x-a1403za-i3-ly143w-1.jpg', '2024-05-02', 2, NULL, NULL),
(12, 'MSI Modern 14 i3', 12190000, 189, 1, 'Laptop MSI Modern 14 B11MOU i3 (1027VN) là phiên bạn dạng máy vi tính phổ thông được căn nhà MSI cho tới tung ra với thiên chức đáp ứng chất lượng tốt từng tác vụ quan trọng nhất cơ bạn dạng hằng ngày của người tiêu dùng Lúc chiếm hữu thông số kỹ thuật ổn định ấn định tới từ con cái chip Hãng Intel Gen 11 nằm trong nước ngoài hình lịch sự và trang nhã, cao cấp và mang tính chất địa hình cao. Thu mút hút từng góc nhìn với lối design quý phái. Lớp vỏ sắt kẽm kim loại bền vững với màu sắc xám chủ yếu vẫn choàng lên vẻ quý phái và cao cấp cho tới máy vi tính MSI Modern, hỗ trợ cho người chủ chiếm hữu nó nổi trội hơn nhiều mặc dù thao tác làm việc vô văn chống hoặc những quán coffe nhiều người. Độ hoạt bát được đầy đủ đáng chú ý Lúc máy chiếm hữu lượng chỉ vỏn vẹn 1.3 kilogam, được chấp nhận các bạn dịch chuyển cho tới bất kể từng không khí mình muốn tuy nhiên không phải lo ngại kềnh càng, việc nặng nhọc.', 'https://cdn.tgdd.vn/Products/Images/44/266898/Slider/vi-vn-msi-modern-14-b11mou-i3-1027vn-1.jpg', '2024-05-02', 2, NULL, NULL),
(13, 'Acer Aspire 7 Game', 14990000, 97, 1, 'Laptop Aspire 7 Gaming A715 42G R4XX R5 (NH.QAYSV.008) chiếm hữu tính năng khoẻ cùng kiểu dáng thiết kế mạnh mẽ và tự tin, là các bạn sát cánh hoàn hảo vào cụ thể từng cuộc hành trình dài. Laptop AMD Ryzen 5 5500U nằm trong thẻ rời NVIDIA GeForce GTX 1650 4 GB, mang lại tài năng design 2 chiều, render đoạn phim ngắn ngủi,... ổn định ấn định bên trên những ứng dụng Adobe hoặc vui chơi với những tựa game kịch tính bên trên thị ngôi trường lúc này một cơ hội mượt tuy nhiên. Chiếc máy vi tính Acer Aspire còn chiếm hữu RAM 8 GB và SSD 256 GB đáp ứng nhu cầu chất lượng tốt nhu yếu nhiều nhiệm, tương hỗ các bạn thao tác từng việc nhanh gọn lẹ và hiệu suất cao rộng lớn. Phiên bạn dạng máy vi tính này với lượng 2.1 kilogam và dày 22.9 milimet, được tạo thành kể từ vật liệu vật liệu bằng nhựa bền chắc, đơn giản và dễ dàng nhằm các bạn đưa đi từng tất cả điểm.', 'https://cdn.tgdd.vn/Products/Images/44/268775/Slider/vi-vn-acer-aspire-7-gaming-a715-42g-r4xx-r5-nhqaysv008-1.jpg', '2024-05-03', 2, NULL, NULL);
Sử dụng Eloquent ORM
Eloquent ORM là dụng cụ vô Laravel dùng làm tương tác với database. Để dùng, bạn phải tạo nên model và khai báo những thông số kỹ thuật là kết thúc .
1. Lệnh tạo nên model
Để tạo nên model với Eloquent, dùng mệnh lệnh sau:
php artisan make:model TenModel
Sau Lúc chạy mệnh lệnh kết thúc, vô thư mục app/Models tiếp tục thấy model vừa mới được tạo nên.
Ví dụ: php artisan make:model SanPham => chạy kết thúc sẽ sở hữu được tệp tin App/Models/SanPham.php
<?php //app/Models/Sanpham.php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SanPham extends Model {
use HasFactory;
}
php artisan make:model LoaiSP => chạy kết thúc sẽ sở hữu được tệp tin App/Models/LoaiSP.php
<?php //app/Models/LoaiSP.php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class LoaiSP extends Model {
use HasFactory;
//...
}
2. Khai báo thông số kỹ thuật cho tới model
Bạn cần thiết thông số kỹ thuật những thông số kỹ thuật vô model nhằm model hoạt động và sinh hoạt
- $table : Tên table link với model, vô table này cần được tạo nên 2 field created_at, updated_at
- $primaryKey: Tên field là khóa chủ yếu của table
- $timestamps : nếu như là false thì Eloquent bỏ lỡ ko update những field updated_at và created_at
- $fillable: Mảng khai báo những field vô table
- $dates: Mảng khai báo những field loại ngày vô table
- $attributes : Mảng khai làm giá trị khoác ấn định cho những field
Ví dụ:
– Mở tệp tin app/Models/Sanpham và khai báo
Xem thêm: giáo dục kinh tế và pháp luật
<?php //app/Models/Sanpham.php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SanPham extends Model {
use HasFactory;
protected $table ="sanpham";
public $primaryKey = "id";
public $timestamps = true;
protected $fillable = ['id', 'tensp','giasp','solanxem','hot','mota','hinh','ngay','idLoai'];
protected $dates = ['ngay'];
protected $attributes= ['solanxem'=>0, 'hot'=>0, 'hinh'=>''];
}
– Mở tệp tin app/Models/LoaiSP.php và khai báo
<?php //app/Models/LoaiSP.php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class LoaiSP extends Model {
use HasFactory;
protected $table ="loaisp";
public $primaryKey = "id";
public $timestamps = true;
protected $fillable =['id', 'tenLoai','soSP'];
protected $attributes= ['soSP'=>0];
}
3. Select data với Eloquent model
Việc truy xuất dữ liiêu trải qua model rất giản đơn dảng với những hàm all, find, get….
a. Hàm all() : lấy toàn bộ record kể từ table
Route::get("/testdb", function(){ $arr = App\Models\Loaisp::all(); foreach ($arr as $row) { echo "<p>", $row->tenLoai,"</p>"; } });

b. Hàm get() : lấy những record kể từ table theo đòi điều kiện
Route::get("/testdb", function(){ $arr = App\Models\Sanpham::where('hot', 1)->orderBy('ngay')->get(); foreach ($arr as $row) { echo "<p>", $row->tensp,"</p>"; } });

c. Hàm find() : lấy 1 record kể từ table
Route::get("/testdb", function(){ $sp1 = App\Models\Sanpham::find(2); if ($sp1!=null) echo $sp1->tensp; else echo "Không với sản phẩm"; });

d. Hàm first() , firstWhere() : lấy record thứ nhất thõa điều kiện
Route::get("/testdb", function(){ $sp1 = App\Models\Sanpham::where('idLoai',2)->first(); $sp2 = App\Models\Sanpham::firstWhere('idLoai',1); if ($sp1!=null) echo " $sp1->tensp <br>"; if ($sp2!=null) echo " $sp2->tensp <br>"; });

e. Hàm sum() , max(), min(), count() : lấy tổng hợp record kể từ table
Route::get("/testdb", function(){ $dem = App\Models\Sanpham::where('tensp','like', 'A%')->count(); $max = App\Models\Sanpham::where('hot','=',1)->max('solanxem'); echo " Dem=$dem , max = $max <br>"; });

4. Chèn record với Eloquent model
Để tạo nên record mới mẻ vô table, tạo nên instance cho tới model + gán độ quý hiếm cho những field rồi gọi phương thức save()
Route::get("/testdb", function(){
$loai = new App\Models\LoaiSP;
$loai->tenLoai = 'Phụ khiếu nại năng lượng điện tử';
$loai->soSP=0;
$loai->save();
echo "Đã chèn xong";
});
Cũng rất có thể sử dụng hàm create() để tạo nên record mới:
Route::get("/testdb", function(){
App\Models\LoaiSP::create(['tenLoai'=>'Đồng hồ','soSP' =>1]);
echo "Đã chèn xong";
});
Chú ý: Để sử dụng hàm create(), ko được quên khai báo biến $fillable trong model
protected $fillable =['id', 'tenLoai','soSP'];
5. Cập nhật record với Eloquent model
Để update 1 record vô table: lấy record với hàm find() + gán độ quý hiếm mới mẻ cho những field + gọi hàm save()
Route::get("/testdb", function(){
$loai = App\Models\LoaiSP::find(7);
if ($loai!=null){
$loai->tenLoai = 'Đồng hồ nước treo tay';
$loai->save();
}
});

Cũng rất có thể sử dụng hàm update() nhằm update những record
Route::get("/testdb", function(){
App\Models\LoaiSP::where ('id',7)
->update(['tenLoai'=>'Treo tường', 'soSP'=>10]);
});

6. Xóa record với Eloquent model
Để xóa 1 record vô table, hàm delete()
Route::get("/testdb", function(){
$loai = App\Models\LoaiSP::find(7);
if ($loai!=null) $loai->delete();
});

Xóa nhiều record thõa ĐK cũng khá được, các bạn sử dụng hàm delete()
App\Models\LoaiSP::where("id",10)->delete();
Sử dụng query builder vô Laravel
Bài học tập cơ bạn dạng về Laravel phần 2 này tiếp tục nhắc một loại nữa, này đó là Query Builder. Cái này là gì? Đây là một trong những tủ sách thứ hai (cái bại liệt là Eloquent ORM) khiến cho bạn tương tác với database.
Dùng Query builder nhằm select, insert, update, delete tài liệu trong số table cực kỳ đơn giản và dễ dàng. Sử dụng query builder trải qua class DB. Cho cho nên hãy dùng mệnh lệnh sau ở đầu controller trước lúc dùnf:
use DB;
Có thể coi DB như thể model khối hệ thống, khi chúng ta sử dụng DB, ko cần thiết tạo nên model chi cả.
1. Tạo một query lấy tài liệu với Query Builder
Để lấy tài liệu kể từ database với tủ sách Query Builder, các bạn tạo nên query theo đòi cú pháp như sau:

2. Các hàm thông thường sử dụng vô query
Khi vẫn tạo nên query như bên trên, chúng ta có thể sử dụng những hàm sau vô query
Xem thêm: lời bài hát thùy chi xe đạp
- $query-> get() =>Lấy list những rercord thõa mãn ĐK vô query.
- $query->first() =>lấy record đầu tiên
- $query->value(‘tenField’) => lấy độ quý hiếm của cột tenField
- $query->pluck(‘tenField’) => lấy những độ quý hiếm của field tenField
- $query->max(‘tenField’) => lấy độ quý hiếm lớn số 1 của tenField
- $query->min(‘tenField’) => lấy độ quý hiếm nhỏ nhất của tenField
- $query->sum(‘tenField’) => lấy tổng những độ quý hiếm của tenField
- $query->avg(‘tenField’) => lấy độ quý hiếm khoảng của tenField $query->count(‘tenField’) => kiểm điểm số record vô query
3. Hàm first() – Lấy record đầu tiên
Route::get("/testdb", function(){ $q = DB::table('loaisp')->select('id','tenLoai'); $row = $q->first(); echo $row->tenLoai; });

4. Hàm get() – Lấy list những record vô query
Route::get("/testdb", function(){ $q = DB::table('loaisp')->select('id','tenLoai'); $arr = $q->get(); foreach($arr as $row ) { echo "<p> $row->tenLoai </p>"; } });

5. Hàm value() – Lấy độ quý hiếm vô một field
Route::get("/testdb", function(){ $tensp = DB::table('sanpham')->where('id','=',2)->value('tensp'); echo $tensp; });

6. Hàm pluck() – Lấy mảng những giá chỉ tri của một field
Route::get("/testdb", function(){ $arr = DB::table('loaisp')->pluck('tenLoai'); foreach($arr as $t ) echo "<p> {$t} </p>"; });

7. Các hàm tổng kết vô query
Route::get("/testdb", function(){ $nb = DB::table('sanpham')->where('hot',1)->count(); $xem = DB::table('sanpham')->max('solanxem'); echo "Số sp nổi trội = {$nb} <br>"; echo "Xem tối đa {$xem} "; });

8. Hàm exits() – Kiểm tra record tồn tại
Route::get("/testdb", function(){ $kq = DB::table('sanpham')->where('id',5)->exists(); if (!$kq) echo "Không tồn bên trên sản phẩm"; else echo "Tồn tại"; });
9. Query với Where, Order By, Limit, Join
Route::get("/testdb", function(){ $query = DB::table('sanpham')->where('hot',1) ->join('loaisp', 'sanpham.idLoai','=','loaisp.id') ->select('sanpham.id', 'tensp','tenLoai') ->orderBy('solanxem','desc'); $arr = $query->get(); foreach($arr as $row ){ echo "<p> {$row->tensp} - ({$row->tenLoai}) </p>"; } });

10. Chèn record và lấy id
Route::get("/testdb", function(){ DB::table('loaisp')->insert( [ 'tenLoai' =>'Tivi', 'soSP'=>100]); });

Route::get("/testdb", function(){ $id = DB::table('loaisp') ->insertGetId( [ 'tenLoai' =>'Gia dụng', 'soSP'=>100]); echo "id của loại mới mẻ chèn $id"; });

11. Cập nhật record
Route::get("/testdb", function(){ $id = DB::table('loaisp')->where('id',9) ->update( [ 'tenLoai' =>'Điện tử gia đình', 'soSP'=>50]); });

12. Xóa record
Route::get("/testdb", function(){ $id = DB::table('loaisp')->where('id',9)->delete(); });
Trên đó là bài học kinh nghiệm trình diễn một trong những cơ bạn dạng về Laravel phần 2 . Nội dung d0ề cập về sự dùng layout vô laravel. Sử dụng tủ sách Eloquent ORM nhằm tương tác với database . Và sau cuối là dùng Query Builder cũng nhằm tương tác database.
Mời coi tăng những tư liệu sau
- https://laravel.com/docs/10.x/blade
- https://laravel.com/docs/10.x/eloquent
- https://laravel.com/docs/10.x/queries
Bình luận