Bài 4: Lấy dữ liệu từ Database bằng Model trong Laravel

Trong những bài trước bạn đã biết được sự kết nối giữa View – Controller. Nhưng đang còn thiếu Model để đủ trong mô hình MVC. Vì thế bài viết này bạn sẽ biết cách lấy dữ liệu từ Database với Model ở trong Laravel với những đoạn lệnh đơn giản.

Xem lại Laravel Framework là gì? Hướng dẫn cài đặt Laravel để kết nối Cơ sở dữ liệu Database

Bước 1: Tạo cơ sở dữ liệu tên là data

csdl

Nhấp vào tab MySQL => Tạo một bảng là member với các cột id, username, password

CREATE TABLE IF NOT EXISTS `member` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(15) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1 ;

csdl-1

Tiếp theo thêm dữ liệu bằng INSERT INTO (Đừng quên ấn Thực hiện nhé!)

INSERT INTO member (username, password)
VALUES ('admin', '123456')

csdl-2

Bước 2: Đến đây bạn sẽ viết mã trong BlogModel.php như sau

<?php

namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use DB;
class BlogModel extends Model
{
    public static function getuserData(){
    $value=DB::table('member')->get();
    return $value;
  }

}

Bắt buộc phải thêm:

  • namespace App\Models;
  • use Illuminate\Database\Eloquent\Model;
  • use DB;

Nó sẽ lấy dữ liệu ở trong bảng member

Bước 3: Viết code cho BlogController.php kết nối với Model thông qua đoạn mã DB::table

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Models\BlogModel;

class BlogController extends Controller {
   	public function index(){
        $userData = BlogModel::getuserData();
    	return view('home')->with('viewdata', $userData);
    }
}

Bắt buộc phải thêm:

  • use App\Models\PostModel; và 4 dòng ở trên

Bước 4: Tạo tập tin home.blade.php tại View

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Ví dụ</title>
</head>
<body>
@foreach($viewdata as $data)
   {{ $data->id }} <br>
   {{ $data->username }} <br>
   {{ $data->password }}
@endforeach
</body>
</html>

Nếu như làm xong hết các viết trên mà vẫn không hiện dữ liệu ra database thì còn thiếu định tuyến route. Bạn cần đọc lại bài Kết nối Controller và View trong Laravel nhé!

Cùng chủ đề

Chuyên mục:

Hãy để lại bình luận:

Mình rất vui khi bạn đã để lại một bình luận. Xin lưu ý rằng tất cả các bình luận đều được kiểm duyệt theo chính sách bảo mật và tất cả các liên kết đều là nofollow. KHÔNG sử dụng từ khóa trong trường tên. Hãy để lại một cuộc trò chuyện cá nhân và ý nghĩa. *