Trong bài viết ngắn này, mình sẽ hướng dẫn các bạn cách lấy tên model table trong Laravel. Trong các tác vụ trước đây của tôi, tôi đã tạo tất cả các mô hình và hiển thị tất cả các bảng từ các mô hình mà tôi đã tạo. Nếu bạn có cùng một nhiệm vụ có thể nó có thể giúp bạn
Trong ví dụ này, chúng tôi sẽ sử dụng mô hình User.php
và lấy tên bảng. Để làm điều đó chỉ cần xem mã của tôi dưới đây
Sử dụng lớp lược đồ, bạn có thể tạo và cập nhật các bảng trong Laravel. Để làm việc với lớp lược đồ, hãy thêm lớp sau vào bộ điều khiển của bạn
use Illuminate\Support\Facades\Schema;
Thí dụ
Đây là một ví dụ hoạt động sử dụng lớp lược đồ -
đầu ra
Đầu ra của đoạn mã trên như sau
Array[ [0] => id [1] => name [2] => email [3] => created_at [4] => updated_at [5] => address ]
Sử dụng lớp Model
Lớp Model trong Laravel đại diện cho bảng trong cơ sở dữ liệu. Ví dụ: nếu bạn có bảng sinh viên, tên model sẽ là sinh viên, đối với người dùng, nó sẽ là người dùng, đối với nhân viên, nó sẽ là “nhân viên”. Tên bảng phải là số nhiều và tên mô hình phải là số ít. Đây là một mẫu được tuân theo, nhưng điều đó không ngăn cản bạn sử dụng quy ước đặt tên mà bạn chọn cho tên bảng và tên mẫu
Ở đây, chúng tôi tìm nạp tất cả các tên bảng có tiền tố từ cơ sở dữ liệu bằng cách sử dụng mặt tiền laravel DB. Vì vậy, nếu bạn cần lấy tất cả các bảng thì bạn đang ở đúng nơi
Vì chúng ta có thể nhận được tất cả các danh sách bảng một cách đơn giản bằng cách làm theo truy vấn sql
SHOW TABLES
Trong ứng dụng Laravel 5, chúng ta sẽ sử dụng truy vấn tương tự ở trên bằng cách sử dụng phương thức select của laravel DB. Vì vậy, hãy xem ví dụ dưới đây
Trình tạo truy vấn cơ sở dữ liệu cung cấp giao diện thuận tiện, thông thạo để tạo và chạy các truy vấn cơ sở dữ liệu. Nó có thể được sử dụng để thực hiện hầu hết các hoạt động cơ sở dữ liệu trong ứng dụng của bạn và hoạt động trên tất cả các hệ thống cơ sở dữ liệu được hỗ trợ
Ghi chú. Trình tạo truy vấn của Laravel sử dụng liên kết tham số PDO xuyên suốt để bảo vệ ứng dụng của bạn khỏi các cuộc tấn công SQL injection. Không cần xóa các chuỗi được truyền dưới dạng ràng buộc
chọn
Lấy tất cả các hàng từ một bảng
$users = DB::table['users']->get[];
Truy xuất một hàng từ một bảng
$user = DB::table['users']->where['name', 'John']->first[];
Truy xuất một cột từ một hàng
$name = DB::table['users']->where['name', 'John']->pluck['name'];
Truy xuất danh sách các giá trị cột
$roles = DB::table['roles']->lists['title'];
Phương thức này sẽ trả về một mảng các chức danh vai trò. Bạn cũng có thể chỉ định cột khóa tùy chỉnh cho mảng được trả về
________số 8_______Chỉ định một mệnh đề chọn
$users = DB::table['users']->select['name', 'email']->get[];
$users = DB::table['users']->distinct[]->get[];
$users = DB::table['users']->select['name as user_name']->get[];
Thêm một mệnh đề chọn vào một truy vấn hiện có
$query = DB::table['users']->select['name'];
$users = $query->addSelect['age']->get[];
Sử dụng toán tử Where
$users = DB::table['users']->where['votes', '>', 100]->get[];
Hoặc Tuyên bố
$users = DB::table['users']
Sử dụng ở đâu giữa
$users = DB::table['users']
->whereBetween['votes', array[1, 100]]->get[];
Sử dụng Where Not Between
$user = DB::table['users']->where['name', 'John']->first[];
0Sử dụng Where In với một mảng
$user = DB::table['users']->where['name', 'John']->first[];
1Sử dụng Where Null để tìm bản ghi với giá trị chưa đặt
$user = DB::table['users']->where['name', 'John']->first[];
2Sắp xếp theo, theo nhóm và có
$user = DB::table['users']->where['name', 'John']->first[];
3Bù trừ & Giới hạn
$user = DB::table['users']->where['name', 'John']->first[];
4tham gia
Trình tạo truy vấn cũng có thể được sử dụng để viết các câu lệnh nối. Hãy xem các ví dụ sau
Tuyên bố tham gia cơ bản
$user = DB::table['users']->where['name', 'John']->first[];
5Tuyên bố tham gia trái
$user = DB::table['users']->where['name', 'John']->first[];
6Bạn cũng có thể chỉ định các mệnh đề nối nâng cao hơn
$user = DB::table['users']->where['name', 'John']->first[];
7Nếu bạn muốn sử dụng mệnh đề kiểu "where" trong phép nối của mình, bạn có thể sử dụng các phương thức
$roles = DB::table['roles']->lists['title'];
9 và $roles = DB::table['roles']->lists['title', 'name'];
0 trên phép nối. Thay vì so sánh hai cột, các phương thức này sẽ so sánh cột với một giá trị$user = DB::table['users']->where['name', 'John']->first[];
8Nâng cao
Nhóm tham số
Đôi khi, bạn có thể cần tạo các mệnh đề where nâng cao hơn, chẳng hạn như "nơi tồn tại" hoặc các nhóm tham số lồng nhau. Trình tạo truy vấn của Laravel cũng có thể xử lý những điều này
$user = DB::table['users']->where['name', 'John']->first[];
9Truy vấn trên sẽ tạo ra SQL sau
$name = DB::table['users']->where['name', 'John']->pluck['name'];
0Tồn tại báo cáo
$name = DB::table['users']->where['name', 'John']->pluck['name'];
1Truy vấn trên sẽ tạo ra SQL sau
$name = DB::table['users']->where['name', 'John']->pluck['name'];
2uẩn
Trình tạo truy vấn cũng cung cấp nhiều phương thức tổng hợp, chẳng hạn như
$roles = DB::table['roles']->lists['title', 'name'];
1, $roles = DB::table['roles']->lists['title', 'name'];
2, $roles = DB::table['roles']->lists['title', 'name'];
3, $roles = DB::table['roles']->lists['title', 'name'];
4 và $roles = DB::table['roles']->lists['title', 'name'];
5Sử dụng các phương pháp tổng hợp
$name = DB::table['users']->where['name', 'John']->pluck['name'];
3biểu thức thô
Đôi khi bạn có thể cần sử dụng biểu thức thô trong truy vấn. Các biểu thức này sẽ được đưa vào truy vấn dưới dạng chuỗi, vì vậy hãy cẩn thận để không tạo bất kỳ điểm chèn SQL nào. Để tạo một biểu thức thô, bạn có thể sử dụng phương thức
$roles = DB::table['roles']->lists['title', 'name'];
6Sử dụng biểu thức thô
$name = DB::table['users']->where['name', 'John']->pluck['name'];
4phụ trang
Chèn bản ghi vào bảng
$name = DB::table['users']->where['name', 'John']->pluck['name'];
5Chèn bản ghi vào bảng có ID tăng tự động
Nếu bảng có id tăng tự động, hãy sử dụng
$roles = DB::table['roles']->lists['title', 'name'];
7 để chèn bản ghi và truy xuất id$name = DB::table['users']->where['name', 'John']->pluck['name'];
6Ghi chú. Khi sử dụng PostgreSQL, phương thức insertGetId mong đợi cột tăng tự động được đặt tên là "id"
Chèn nhiều bản ghi vào một bảng
$name = DB::table['users']->where['name', 'John']->pluck['name'];
7cập nhật
Cập nhật các bản ghi trong một bảng
$name = DB::table['users']->where['name', 'John']->pluck['name'];
8Tăng hoặc giảm giá trị của một cột
$name = DB::table['users']->where['name', 'John']->pluck['name'];
9Bạn cũng có thể chỉ định các cột bổ sung để cập nhật
$roles = DB::table['roles']->lists['title'];
0xóa
Xóa các bản ghi trong một bảng
$roles = DB::table['roles']->lists['title'];
1Xóa tất cả các bản ghi khỏi một bảng
$roles = DB::table['roles']->lists['title'];
2Cắt bớt một bảng
$roles = DB::table['roles']->lists['title'];
3đoàn thể
Trình tạo truy vấn cũng cung cấp một cách nhanh chóng để "kết hợp" hai truy vấn với nhau
$roles = DB::table['roles']->lists['title'];
4Phương thức
$roles = DB::table['roles']->lists['title', 'name'];
8 cũng có sẵn và có cùng chữ ký phương thức như $roles = DB::table['roles']->lists['title', 'name'];
9khóa bi quan
Trình tạo truy vấn bao gồm một vài hàm để giúp bạn thực hiện "khóa bi quan" trên các câu lệnh CHỌN của mình
Để chạy câu lệnh SELECT với "khóa chia sẻ", bạn có thể sử dụng phương thức
$users = DB::table['users']->select['name', 'email']->get[];
$users = DB::table['users']->distinct[]->get[];
$users = DB::table['users']->select['name as user_name']->get[];
0 trên một truy vấn$roles = DB::table['roles']->lists['title'];
5Để "khóa để cập nhật" trên câu lệnh SELECT, bạn có thể sử dụng phương thức
$users = DB::table['users']->select['name', 'email']->get[];
$users = DB::table['users']->distinct[]->get[];
$users = DB::table['users']->select['name as user_name']->get[];
1 trên một truy vấn$roles = DB::table['roles']->lists['title'];
6Truy vấn bộ đệm
Bạn có thể dễ dàng lưu trữ kết quả truy vấn bằng cách sử dụng phương pháp
$users = DB::table['users']->select['name', 'email']->get[];
$users = DB::table['users']->distinct[]->get[];
$users = DB::table['users']->select['name as user_name']->get[];
2 hoặc $users = DB::table['users']->select['name', 'email']->get[];
$users = DB::table['users']->distinct[]->get[];
$users = DB::table['users']->select['name as user_name']->get[];
3$roles = DB::table['roles']->lists['title'];
7Trong ví dụ này, kết quả của truy vấn sẽ được lưu vào bộ đệm trong mười phút. Trong khi kết quả được lưu vào bộ nhớ cache, truy vấn sẽ không được chạy đối với cơ sở dữ liệu và kết quả sẽ được tải từ trình điều khiển bộ đệm mặc định được chỉ định cho ứng dụng của bạn