MVC trong Laravel 5.1 ( Overview Laravel 5.1 )

Chào mừng ngày cuối tuần bằng bài viết cho những bạn mới tìm hiểu về Laravel mà còn bỡ ngỡ không biết Controller, View và Model gọi nhau thế nào nhé.

Mình chỉ nói tư tưởng và cách viết để các bạn có tư duy sơ bộ về MVC trong Laravel 5.1 như thế nào nhé.

1. View

  • Phần hiện thị ở phía Client như thế nào, đẹp xấu ra sao là do phần này các bạn viết thế nào nhé. Nó nằm trong thư mục resources/views, là thư mục quy định sẵn của Laravel 5.1 lần này. Khác với Laravel 4, các bạn sẽ thấy Views nằm trong thư mục View ngay trong App folder.
  • Trong thư mục Views này chứa những file html được giữ nguyên cách đặt tên như trong Laravel 4 đó là: fileName.blade.php
  • Các file trong Views sử dụng những thành phần trong thư mục Public gồm css, images, js.
  • Mọi truy cập từ bên ngoài vào Server của bạn sẽ dẫn tới thư mục public này, có nghĩa là mọi tấn công từ bên ngoài cũng chỉ vào được khu vực này thôi. Bạn yên tâm là họ chỉ đọc được Css, images, javascript.
  • Cùng xem một đoạn code sau trong file “home.blade.php”:

 

スクリーンショット 2015-12-05 午前10.48.26

  • Đây chỉ là một đoạn Html đơn giản, tuy nhiên chúng ta sẽ xem phải show nó lên như thế nào trong Laravel 5.1 nhé!
  • Route: Khi truy cập tới route: “home-page” bằng phương thức “get” chúng ta cần một khai báo trong router như dưới đây:

Route::get(‘home-page’, array(‘uses’ =>                                                 ‘Admin\AdminController@showHomePage’));

Có thể hiểu như sau: khi có một action get truy cập tới “home-page” thì controller: AdminController sẽ được kích hoạt và gọi tới hàm showHomePage.

2. Controller

Trong AdminController hàm showHomePage được viết như sau:

public function showHomePage() {

$userEmail = nishi@betogoo.com

$dataUser = \App\UserManage::getInfoUser($userEmail);
return View::make(‘home’, array(
‘userLogin’ => $dataUser,
));
}

Đoạn code đơn giản này đã thể hiện được cách làm việc từ việc gọi Model để lấy dữ liệu $dataUser sau đó đổ nó lên View có tên là “home” (chính là file view: “home.blade.php”) thông qua phương thức “make” , ngoài ra việc truyền nhiều biến vào View bạn có thể nhét hết vào một mảng trong “array” như trên!

3. Model

Hàm lấy thông tin “getInfoUser” này nằm trong file “UserManage” trong thư mục App chính vì thế để gọi được nó chúng ta phải chỉ ra trong controller cụ thể nó nằm ở đâu thông qua: \App\UserManage::getInfoUser

Cùng xem Model được viết như thế nào nhé:

public static function getInfoUser($email) {
$userInfo = DB::table(‘users’)->where(’email’, $email)->first();
return $userInfo;
}

Cần phải khai báo static để mọi controller có thể gọi được function này. Ta có thể thấy model này gọi tới bảng “users” với điều kiệu là email phải bằng biến $email, email này được truyền vào từ controller:

$userEmail = nishi@betogoo.com

$dataUser = \App\UserManage::getInfoUser($userEmail);

 

Một chút trên để các bạn hình dung cơ chế gọi nhau của Controller, View và Model, để thành thạo cách sử dụng chúng và thực hiện các tác vụ phức tạp hơn, các bạn hãy thực hành thật nhiều và tham khảo trang chủ của laravel.com nhé.

2 thoughts on “MVC trong Laravel 5.1 ( Overview Laravel 5.1 )

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s