Nhận tất cả các tên bảng trong Laravel

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[];

0

Sử dụng Where In với một mảng

$user = DB::table['users']->where['name', 'John']->first[];

1

Sử dụng Where Null để tìm bản ghi với giá trị chưa đặt

$user = DB::table['users']->where['name', 'John']->first[];

2

Sắp xếp theo, theo nhóm và có

$user = DB::table['users']->where['name', 'John']->first[];

3

Bù trừ & Giới hạn

$user = DB::table['users']->where['name', 'John']->first[];

4

tham 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[];

5

Tuyên bố tham gia trái

$user = DB::table['users']->where['name', 'John']->first[];

6

Bạ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[];

7

Nế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[];

8

Nâ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[];

9

Truy vấn trên sẽ tạo ra SQL sau

$name = DB::table['users']->where['name', 'John']->pluck['name'];

0

Tồn tại báo cáo

$name = DB::table['users']->where['name', 'John']->pluck['name'];

1

Truy vấn trên sẽ tạo ra SQL sau

$name = DB::table['users']->where['name', 'John']->pluck['name'];

2

uẩ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'];

5

Sử dụng các phương pháp tổng hợp

$name = DB::table['users']->where['name', 'John']->pluck['name'];

3

biể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'];

6

Sử dụng biểu thức thô

$name = DB::table['users']->where['name', 'John']->pluck['name'];

4

phụ trang

Chèn bản ghi vào bảng

$name = DB::table['users']->where['name', 'John']->pluck['name'];

5

Chè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'];

6

Ghi 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'];

7

cậ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'];

8

Tăng hoặc giảm giá trị của một cột

$name = DB::table['users']->where['name', 'John']->pluck['name'];

9

Bạn cũng có thể chỉ định các cột bổ sung để cập nhật

$roles = DB::table['roles']->lists['title'];

0

xóa

Xóa các bản ghi trong một bảng

$roles = DB::table['roles']->lists['title'];

1

Xóa tất cả các bản ghi khỏi một bảng

$roles = DB::table['roles']->lists['title'];

2

Cắ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'];

4

Phươ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'];

9

khó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'];

6

Truy 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'];

7

Trong 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

Làm cách nào để lấy dữ liệu mảng từ cơ sở dữ liệu trong laravel?

Bạn cũng có thể làm như thế này. $result = DB. bảng['tên bảng']->get[];

Làm cách nào để lấy tất cả tên bảng trong laravel?

Laravel dựa trên MVC. Vì vậy, chúng tôi yêu cầu tạo mô hình cho mọi bảng theo cách mà chúng tôi có thể viết logic cơ sở dữ liệu trên mô hình. Nhưng nếu bạn yêu cầu lấy tên bảng từ mô hình thì bạn có thể lấy bằng cách sử dụng getTable[] của mô hình .

Làm cách nào tôi có thể xem tất cả các tên bảng?

Tất cả các bảng và dạng xem . SELECT table_name, table_schema, table_type FROM information_schema. bảng ĐẶT HÀNG BẰNG tên_bảng ASC; . Loại sẽ là “BASE TABLE” cho bảng hoặc “VIEW” cho dạng xem.

Làm cách nào để lấy tên mô hình từ tên bảng trong laravel?

Trước hết, hãy chắc chắn rằng bạn cần nó. Tên bảng không nên được sử dụng làm dữ liệu, trừ khi bạn cần nó để làm gì đó với chính bảng đó. Nếu bạn thực sự cần nó, cách tốt nhất của bạn là xem qua tất cả các tệp trong thư mục /app, giải quyết không gian tên của mô hình thông qua tên tệp và sau đó gọi [new $modelName]->getTable[] .

Chủ Đề