Tôi sẽ giải thích cho bạn ví dụ về cách kiểm tra kết nối cơ sở dữ liệu trong laravel. hãy thảo luận về laravel kiểm tra kết nối cơ sở dữ liệu. chúng tôi sẽ giúp bạn đưa ra một ví dụ về laravel lấy kết nối cơ sở dữ liệu. Ở đây bạn sẽ học kiểm tra laravel nếu cơ sở dữ liệu được kết nối
Bạn có thể sử dụng ví dụ này với các phiên bản laravel 6, laravel 7, laravel 8 và laravel 9
Nếu bạn cần kiểm tra kết nối cơ sở dữ liệu tồn tại hay không trong laravel. Sau đó, tôi sẽ cung cấp cho bạn hai ví dụ đơn giản sử dụng DB PDO và DB getDatabaseName[]
Laravel cung cấp nhiều công cụ hữu ích để giúp kiểm tra các ứng dụng hướng cơ sở dữ liệu của bạn dễ dàng hơn. Đầu tiên, bạn có thể sử dụng trình trợ giúp
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
4 để xác nhận rằng dữ liệu tồn tại trong cơ sở dữ liệu phù hợp với một bộ tiêu chí nhất định. Ví dụ: nếu bạn muốn xác minh rằng có một bản ghi trong bảng use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
5 với giá trị use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
6 là use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
7, bạn có thể thực hiện như saupublic function testDatabase[]
// Make call to application...
$this->seeInDatabase['users', [
Tất nhiên, phương pháp
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
4 và những người trợ giúp khác như vậy là để thuận tiện. Bạn có thể tự do sử dụng bất kỳ phương thức xác nhận tích hợp nào của PHPUnit để bổ sung cho các bài kiểm tra của mìnhĐặt lại cơ sở dữ liệu sau mỗi lần kiểm tra
Việc đặt lại cơ sở dữ liệu của bạn sau mỗi lần kiểm tra thường hữu ích để dữ liệu từ lần kiểm tra trước không ảnh hưởng đến các lần kiểm tra tiếp theo
Sử dụng di chuyển
Một cách tiếp cận để đặt lại trạng thái cơ sở dữ liệu là khôi phục cơ sở dữ liệu sau mỗi lần kiểm tra và di chuyển nó trước lần kiểm tra tiếp theo. Laravel cung cấp một đặc điểm
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
9 đơn giản sẽ tự động xử lý việc này cho bạn. Chỉ cần sử dụng đặc điểm trên lớp kiểm tra của bạn và mọi thứ sẽ được xử lý cho bạnuse Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
Sử dụng giao dịch
Một cách tiếp cận khác để đặt lại trạng thái cơ sở dữ liệu là bọc từng trường hợp thử nghiệm trong một giao dịch cơ sở dữ liệu. Một lần nữa, Laravel cung cấp một đặc điểm thuận tiện
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
0 sẽ tự động xử lý việc này cho bạnuse Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
{note} Theo mặc định, đặc điểm này sẽ chỉ ngắt kết nối cơ sở dữ liệu mặc định trong một giao dịch. Nếu ứng dụng của bạn đang sử dụng nhiều kết nối cơ sở dữ liệu, bạn nên xác định thuộc tính
1 trên lớp thử nghiệm của mình. Thuộc tính này phải là một mảng tên kết nối để thực hiện các giao dịch trên
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
nhà máy viết
Khi kiểm tra, bạn có thể cần chèn một vài bản ghi vào cơ sở dữ liệu của mình trước khi thực hiện kiểm tra của mình. Thay vì chỉ định thủ công giá trị của từng cột khi bạn tạo dữ liệu thử nghiệm này, Laravel cho phép bạn xác định một bộ thuộc tính mặc định cho từng mô hình Eloquent của bạn bằng cách sử dụng các nhà máy mô hình. Để bắt đầu, hãy xem tệp
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
2 trong đơn đăng ký của bạn. Ngay sau khi mở hộp, tệp này chứa một định nghĩa ban đầuuse Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
2Trong phần Đóng, đóng vai trò là định nghĩa ban đầu, bạn có thể trả về các giá trị thử nghiệm mặc định của tất cả các thuộc tính trên mô hình. Đóng cửa sẽ nhận được một phiên bản của thư viện Faker PHP, cho phép bạn tạo các loại dữ liệu ngẫu nhiên khác nhau để thử nghiệm một cách thuận tiện
Tất nhiên, bạn có thể tự do thêm các nhà máy bổ sung của riêng mình vào tệp
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
3. Bạn cũng có thể tạo các tệp nhà máy bổ sung cho từng kiểu máy để tổ chức tốt hơn. Ví dụ: bạn có thể tạo các tệp use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
4 và use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
5 trong thư mục use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
6 của mình. Tất cả các tệp trong thư mục use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
7 sẽ tự động được tải bởi LaravelKỳ nhà máy
Các trạng thái cho phép bạn xác định các sửa đổi riêng biệt có thể được áp dụng cho các nhà máy mô hình của bạn theo bất kỳ cách kết hợp nào. Ví dụ: mô hình
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
8 của bạn có thể có trạng thái use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
9 sửa đổi một trong các giá trị thuộc tính mặc định của nó. Bạn có thể xác định các phép biến đổi trạng thái của mình bằng phương pháp use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
20use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
1sử dụng nhà máy
Tạo mô hình
Khi bạn đã xác định các nhà máy của mình, bạn có thể sử dụng hàm toàn cầu
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
21 trong các thử nghiệm hoặc tệp gốc của mình để tạo các phiên bản mô hình. Vì vậy, chúng ta hãy xem một vài ví dụ về việc tạo mô hình. Đầu tiên, chúng ta sẽ sử dụng phương thức use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
22 để tạo các mô hình nhưng không lưu chúng vào cơ sở dữ liệuuse Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
4Bạn cũng có thể tạo Bộ sưu tập gồm nhiều mô hình hoặc tạo mô hình của một loại nhất định
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
5Áp dụng Kỳ
Bạn cũng có thể áp dụng bất kỳ trạng thái nào của mình cho các mô hình. Nếu bạn muốn áp dụng nhiều chuyển đổi trạng thái cho các mô hình, bạn nên chỉ định tên của từng trạng thái mà bạn muốn áp dụng
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
6Ghi đè thuộc tính
Nếu bạn muốn ghi đè một số giá trị mặc định của mô hình, bạn có thể chuyển một mảng giá trị cho phương thức
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
22. Chỉ các giá trị được chỉ định sẽ được thay thế trong khi các giá trị còn lại vẫn được đặt thành giá trị mặc định của chúng theo quy định của nhà máyuse Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
8Mô hình bền bỉ
Phương thức
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
24 không chỉ tạo các thể hiện của mô hình mà còn lưu chúng vào cơ sở dữ liệu bằng cách sử dụng phương thức use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
25 của Eloquentuse Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
1Bạn có thể ghi đè các thuộc tính trên mô hình bằng cách chuyển một mảng tới phương thức
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
24use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
0Các mối quan hệ
Trong ví dụ này, chúng tôi sẽ đính kèm một mối quan hệ với một số mô hình đã tạo. Khi sử dụng phương thức
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
24 để tạo nhiều mô hình, một phiên bản bộ sưu tập Eloquent được trả về, cho phép bạn sử dụng bất kỳ chức năng thuận tiện nào do bộ sưu tập cung cấp, chẳng hạn như use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
28use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
1Quan hệ & đóng thuộc tính
Bạn cũng có thể đính kèm các mối quan hệ với các mô hình bằng cách sử dụng thuộc tính Đóng trong định nghĩa ban đầu của mình. Ví dụ: nếu bạn muốn tạo một phiên bản
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
8 mới khi tạo một use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
* A basic functional test example.
public function testBasicExample[]
10, bạn có thể thực hiện như sau