Chuyên mục Laravel

Bài 5: Cách thêm cơ sở dữ liệu vào database trong Laravel

Đăng bởi: Minacode|Cập nhật:10-12-2023

Ok anh em! Bài trước chúng ta đã tạo được table có tên là products thành công. Bài này mình hướng dẫn anh em thêm các thông tin sản phẩm vào table  này nhé.

Ví dụ trong thực tế, để thêm sản phẩm thông thường chúng ta sẽ có một form thêm sản phẩm như sau: 

Cái form này mình sẽ để action = “product_add” nhé.  Sau khi điền các thông tin và nhấp chuột vào cái button thêm sản phẩm. Ta sẽ có được các em thông tin sau:

1, name => ‘Sản Phẩm A’

2, price_tag => ‘150000’

3, price_sale => ‘120000’

4, description => ‘Sản Phẩm A Description…..’

5, content => ‘Sản Phẩm A Content…..’

6, image => ‘images/picture1.png’

7, product_images => ‘images/picture1.png, images/picture2.png, images/picture3.png’

 

Vẫn là các trường thông tin quen thuộc từ bài trước thôi nhé!

Các trường thông tin trên mình tạm thời giả định, tưởng tượng là có giá trị như vậy . Thực tế thì nó sẽ được lấy qua form với method post của chúng ta đúng không.

Các bạn có thể tham khảo thêm kiến thức này tại các bài viết liên quan đến Php-MySqli-DataBase Cơ Bản của mình Tại đây:

Tiếp theo mình sẽ tạo một controller để thực hiện các câu lệnh liên quan đên cái ông products này và mình đặt tên cho nó là ProductsController

Câu lệnh cụ thể như sau:

php artisan make:controller ProductsController

Sau khi tạo xong mình sẽ vào file ProductsController.php  vừa mới được tạo để thêm một method có tên là insert_product.

Các bạn thấy là các thông tin mình đang để cố định. Thực tế thì các thông tin trên chúng ta sẽ lấy từ tư $request nhé. Đại khái kiểu như thế này:

  public function insert_product (Request $request){
       $product = new product();
       $product -> name = $request -> input('name');
       $product -> price_tag = $request -> input('price_tag');
	   $product -> price_sale = $request -> input('price_sale');
       $product -> description = $request ->input('description');
       $product -> content =$request ->input('content');
       $product -> image = $request ->input('image');
       $product -> product_images = input('product_images');
       $product -> save();
       return redirect()->back();
    }

 

Ok, Bây giờ mình sẽ qua file web.php trong thư mục routes để tạo route cho nó.

Route::post('/product_add',[ProductsController::class,'insert_product']);

 

Sau khi các bạn tạo một route xong thì để đề phòng lỗi các bạn chạy câu lệnh:

php artisan optimize:clear

Bình thường thực tế khi các bạn submit form thì cái luồng thêm sản phẩm mà chúng ta đã code từ nãy giờ sẽ được thực thi. Tuy nhiên do đây là lý thuyết nên mình không có tạo form.

Để xử lý tính huống này mình sẽ lên thanh đia chỉ và gõ đường dẫn sau vào: 

http://127.0.0.1:8000/product_add

Đồng thời mình sửa lại cai route thành GET

Route::get('/product_add',[ProductsController::class,'insert_product']);

 

Và vào lại database kế quả chúng ta có:

 

Quá ngon lành cành đào đúng không?

Hẹn gặp lại các bạn bài tiếp theo nhé!

Để Lại Ý Kiến Của bạn!
Bài Viết Chuyên Mục


Khóa Học Miễn Phí

IvyModa

FullStack

Chi tiết

Tạo tính năng CRUD với Livewire Laravel

FullStack

Chi tiết

Php-MySqli-DataBase Cơ Bản

FullStack

Chi tiết
Về MinaCode
Đọc Thơ Nhân Kỷ Niệm 10 Năm Thành Lập MB Nam Đà Nẵng

Banker To Coder

Hi All,


Nguyên đây! MinaCode là website mình tạo ra với mong muốn chia sẻ chút kiến thức liên quan đến lập trình FullStack.

Ngôn ngữ lập trình chủ yếu được sử dụng là Htm, Css, Javascript, Php cùng một số thư viện như Jquery, Fontawesome... Phía Frontend và Farmework Laravel phía Backend.

Mình chưa bao giờ tham gia bất cứ một trường lớp nào về lập trình. Tất cả kiến thức mình chia sẻ đều là trên tình thần tự học. Do đó:

+ MinaCode phù hợp với những tay ngang, xem lập trình như là một kỹ năng bổ trợ trong công việc hay là một kênh kiếm thêm thu nhập từ những very mini projects.

+ MinaCode không phù hợp với những bạn đang được đào tạo bài bản, chính quy.

Mình tin rằng, Trong tương lai không xa. Lập trình sẽ trở nên một kỹ năng không thể thiếu đối với các bạn trẻ.

Cuối cùng thì Ngôn ngữ lập trình không quan trọng bằng Tư duy lập trình. Mình chúc các bạn sẽ có được những kiến thức bổ ích với MinaCode.

--Ngô Sỹ Nguyên--

Coming Soon