Tương tác với cơ sở dữ liệu như tạo cơ sở dữ liệu, tạo bảng, thêm xóa sửa dữ liệu là một trong các thao tác bất kỳ một website nào cũng phải được xây dựng. Trong Laravel, việc này được đơn giản hóa rất dễ dàng với 2 chức năng Migration và Eloquent

Chức năng Migration

Định nghĩa: Giống như một version control của database, 1 tính năng giúp bạn quản lý các version của database. Migrations trong Laravel 5 cho phép bạn chỉnh sửa scheme database, cập nhật trang thái hiện tại của database. Migrations giúp cho việc quản lý database của bạn trở nên đễ dàng hơn.

Cấu hình để thực hiện các chức năng Migrations

Có 2 tập tin cấu hình:

1. laravel-5/.env (chỉ sử dụng để chạy ở localhost)

2. laravel-5/config/database.php (dùng để chạy khi sản phẩm đã hoàn thành)

Cấu hình tập tin config/database.php

Mở tập tin và tìm đến đoạn code chỉnh sửa theo mẫu

'mysql' => [
    'driver'    => 'mysql',
    'host'      => env('DB_HOST', 'localhost'),
    'database'  => env('DB_DATABASE', 'laravel_db'),
    'username'  => env('DB_USERNAME', 'root'),
    'password'  => env('DB_PASSWORD', ''),
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
    'strict'    => false,
    'engine'    => null,
],

Cấu hình tập tin .env để chạy Localhost

Mở file này lên và bạn cấu hình như dưới đây

APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomString

DB_HOST=localhost
DB_DATABASE=laravel_db
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null

Tiếp theo chúng ta sẽ sử dụng chức năng Migration trong Laravel

Mở thư mục ứng dụng với cửa sổ cmd gõ lệnh

001.png - 9.18 kb

Lỗi trên là do chúng ta chưa tạo cơ sở dữ liệu mẫu laravel_db trong mysql.

Sử dụng phpadmin tạo cơ sở dữ liệu

002.png - 16.35 kb

Chạy lại câu lệnh trên sẽ thấy kết quả

003.png - 14.98 kb

Sau khi chạy lệnh trên, Laravel 5 đồng thời đã thực thi 2 file trong thư mục laravel-5/database/migrations đó là 2014_10_12_000000_create_users_table.php và 2014_10_12_100000_create_password_resets_table.php như hình dưới đây.

004.png - 4.67 kb

Việc thực thi 2 file này đã tạo 2 bảng trong cơ sở dữ liệu laravel_db

005.png - 5.65 kb

Mở tập tin 2014_10_12_000000_create_users_table.php

006.png - 25.24 kbTrong tập tin có 2 hàm: Function up() thường là dùng để tạo bảng, function down() thường có chức năng dùng để rollback lại trang thái ban đầu tại thời điểm mà function up() chưa được thực thi. Chức năng của function down() thường là xóa bảng (drop table).

Chúng ta tiếp tục chạy câu lệnh

007.png - 6.63 kb

Kiểm tra trong phpmyadmin lại sẽ không thấy 2 bảng vừa được tạo nữa.

Như vậy các bạn có thể cơ bản nắm được chức năng của migrate dùng để tương tác với cơ sở dữ liệu như thế nào rồi.

Tiếp theo chúng ta thử sử dụng migrate để tạo một bảng dữ liệu có tên là articles.

008.png - 17.77 kb

Khi đó trong thư mục migrate sẽ xuất hiện tập tin 2016_03_02_084056_create_tbl_articles có nội dung như sau

009.PNG - 21.24 kb

Chạy tiếp lệnh

010.png - 5.89 kb

Chúng ta sẽ thấy được bảng tbl_article được tạo có cấu trúc như sau:

012.png - 24.26 kb

 

Như vậy các bạn muốn tạo thêm các cột khác thì sẽ cập nhật vào tập tin 2016_03_02_084056_create_tbl_articles mã nguồn như sau:

013.png - 19.83 kb

Chúng ta chạy lại câu lệnh rollback sau đó chạy lại câu lệnh migrate

Kết quả bảng dữ liệu sẽ được cập nhật

Chức năng Eloquent

Eloquent trong Laravel 5 chính là một ORM (Object-relational mapping), cung cấp các ActiveRecord đơn giản nhưng vô cùng chuyên nghiệp, giúp chúng ta làm việc với cơ sở dữ liệu thuận tiện hơn. Nó hỗ trợ các chức năng dùng để thêm xóa sửa dữ liệu.

Để sử dụng chúng sẽ sử dụng php artisan tạo ra một lớp model gọi là Articles sẽ kế thừa class Eloquent model, nhằm thừa hưởng sức mạnh tương tác của lớp Eloquent này với database của chúng ta, mà ở đây chính là bảng tbl_articles.

Để tạo ra class Articles kế thừa class Eloquent, mình sẽ gõ lệnh sau :

015.png - 3.54 kb

Sau khi thực hiện trong thư mục app sẽ xuất hiện tập tin model Articles

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Articles extends Model
{
    //
}

Class Articles kế thừa lớp Eloquent Model và cũng chỉ cần bao nhiêu dòng code như vậy thôi là đủ để bạn sử dụng sức mạnh ActiveRecord để thao tác thêm, xóa, sửa với bảng tlb_articles.

Để tạo các action thêm, xóa, sửa bạn sử dụng câu lệnh php artisan tinker

Tiếp theo chúng ta gõ các lệnh để tạo thể hiện và thêm dữ liệu

016.png - 13.47 kb

Như vậy là chúng ta đã thêm được dữ liệu vào trong bảng tbl_articles.

017.png - 20.44 kb

Tuy nhiên với ngôn ngữ tiếng việt trên DOS thì việc sử dụng chức năng này rất hạn chế. Tuy nhiên với chức năng migration sẽ rất hữu dụng khi chúng ta phát triển các ứng dụng web một cách nhanh chóng. Chúc bạn thành công.

CLB Tin Học

  • Chưa có lời bình cho bài viết này.