Hôm nay, trong hành trình của chúng ta với #100DaysOfCode, tôi muốn chia sẻ với các bạn về việc tạo mô hình trong Laravel 5.8. Việc này không hề đơn giản, nhưng chúng ta hãy khám phá và tìm hiểu một cách nhẹ nhàng.
Laravel là một framework được xây dựng theo mô hình MVC (Model - View - Controller). Model đóng vai trò chuẩn bị dữ liệu cho Controller và View được sử dụng để hiển thị dữ liệu cho người dùng.
Để tạo một mô hình, chúng ta có thể sử dụng lệnh php artisan make:model
. Ví dụ, để tạo mô hình Product
, chúng ta có thể chạy lệnh:
php artisan make:model Product -migration
Lệnh trên sẽ tạo một mô hình Product
và một file migration tương ứng trong thư mục App\Database\Migrations
để tạo cơ sở dữ liệu cho mô hình.
Ngoài ra, Laravel cung cấp rất nhiều tùy chọn để tạo các lớp model khác nhau. Ví dụ:
-
Tạo một lớp factory trong đường dẫn
App\Database\Factories
để tạo dữ liệu mẫu cho bảng.php artisan make:model Product -factory
-
Tạo mô hình
Product
và lớpProductSeeder
trongApp\Database\Seeds
.php artisan make:model Product -seed
-
Tạo mô hình
Product
và đồng thời tạo lớpProductController
trongApp\Http\Controllers
.php artisan make:model Product -controller
Nếu bạn muốn tạo các lớp riêng biệt theo ý muốn, bạn có thể sử dụng các lệnh sau đây:
-
Tạo lớp factory
ProductsFactory
.php artisan make:factory ProductsFactory
-
Tạo lớp seeder
ProductsTableSeeder
.php artisan make:seeder ProductsTableSeeder
-
Tạo lớp controller
ProductController
.php artisan make:controller ProductController
Sau khi đã tạo thành công các model, chúng ta cần cấu hình quan hệ giữa các model như sau:
Trong file App\Product.php
, chúng ta có:
public function comments() { return $this->hasMany('App\Comment'); }
Trong file App\Comment.php
, chúng ta có:
public function product() { return $this->belongsTo(Product::class); }
Để kiểm tra quan hệ giữa các model, chúng ta có thể tạo dữ liệu mẫu để kiểm tra. Sau đó, chúng ta có thể sử dụng controller ProductController
để hiển thị sản phẩm và bình luận tương ứng.
public function index() { $products = Product::all()->toArray(); $comments = Comment::all()->toArray(); $data = Product::with("comments")->get()->toArray(); dd(["products" => $products, "comments" => $comments, "ProductComment" => $data]); }
Cuối cùng, không quên chạy lệnh migration để tạo các bảng trong cơ sở dữ liệu của chúng ta:
php artisan migrate
Và đó là cách chúng ta có thể tạo mô hình trong Laravel 5.8. Hãy tiếp tục khám phá và tìm hiểu thêm về chủ đề này. Chúc các bạn thành công trong hành trình #100DaysOfCode!