Chia sẻ và học hỏi Show TIPs Hỏi Đáp Bỏ túi Laravel
Docker Kỹ năng cần biết
667 0 Laravel Eloquent Model Bài tiếp theo Top viewsLiên quanMục lụcModel trong mô mình MVC dùng để tương tác với cơ sở dữ liệu và trả kết quả về cho Controller, từ đó controller sẽ xử lý kết quả đó và chuyển sang View để hiển thị lên website. Trong laravel có 2 cách sử dụng đó là dùng Eloquent ORM hoặc Query Builder. Trong bài này mình sẽ giới thiệu về Query Builder và ở bài sau mình sẽ nói về Eloquent ORM. Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. Hiện laravel hỗ trợ 4 hệ quản trị cơ sở dữ liệu là: MySQL, Postgres, SQLite, SQL Server và thông tin cấu hình database nằm ở file Trong model của laravel sử dụng PDO đảm bảo tính an toàn (chống SQL injection) nên bạn không cần kiểm tra và "làm sạch" dữ liệu đầu vào. Mình xin trích nguyên văn: "The Laravel query builder uses PDO parameter binding throughout to protect your application against SQL injection attacks. There is no need to clean strings being passed as bindings" 1. Tạo Model trong laravelTất cả Model của laravel được đặt trong thư mục Bài viết này được đăng tại [free tuts .net]
Ví dụ: tạo User model với query builder: Bước 1: Tạo file Bước 2: Viết code trong file <?php class User{ public static function all(){ return DB::table('users')->get(); } } Vậy là ta đã tạo ra model User và phương thức all để lấy ra tất cả các user. Tạo model trong thư mục con (sub folder)Laravel hỗ trợ rất tốt việc tạo các class trong sub folder, và cũng tương tự như việc tạo controller trong sub folder, sau khi tạo xong bắt buộc chạy lệnh sau (run command): Ví dụ tạo model 2. Tương tác với cơ sở dữ liệu bằng Query BuilderĐể tương tác với cơ sở dữ liệu bằng query builder thì laravel cung cấp cho ta class Cú pháp sử dụng: DB::table($ten_bang)->bieuthuc->laydulieu(); Trong đó:
Ví dụ: tạo phương thức tìm ra user đầu tiên theo username => đầu vào là <?php class User{ public static function getByUserName($username) { return DB::table('users')->where('username','=',$username)->first(); } } Sử dụng: Để biết các biểu thức trong query builder hỗ trợ, bạn chạy đoạn code sau và bạn sẽ thấy là có rất nhiều query được hỗ trợ: var_dump(get_class_methods('\Illuminate\Database\Query\Builder')); Bây giờ ta sẽ tìm hiểu thêm một số biểu thức thường dùng trong Query Builder. Biểu thức WhereBiểu thức Where sẽ có các tham số truyền vào và tùy vào số lượng tham số đó mà Laravel sẽ có những cách xử lý khác nhau. where($column_value): trường hợp này $column_value=[ 'username'=>'freetuts', 'email'=>'' ];
where('username','freetuts');
where('id', '>', 13); //sql: where id > 13
where('username','freetuts')->orWhere('email',''); //sql: where username='freetuts' or email='' Vẫn còn các biểu thức tương tự như:
Offset & Limit: $users = DB::table('users')->skip(10)->take(5)->get(); //sql: select * from `users` limit 5 offset 10 $users = DB::table('users')->offset(10)->take(5)->get(); //sql: select * from `users` limit 5 offset 10 Order By, Group By, và Having $users = DB::table('users') ->orderBy('name', 'desc') ->groupBy('count') ->having('count', '>', 100) ->get(); //sql: select * from `users` group by `count` having `count` > 100 order by `name` desc' 3. Kết LuậnNhư vậy trong bài này, mình đã giới thiệu về model trong laravel, cách sử dụng cơ bản của query builder và vài biểu thức đi kèm. Ở bài sau mình sẽ tiếp tục giới thiệu về query builder. |