Thumbnail
Category: Laravel

Controller và View trong Laravel

Date: February 23, 2020
50 views

Bài trước mình đã giới thiệu các bạn về route trong laravel. Hôm nay mình sẽ tiếp tục với hai thuật ngữ cũng quan trọng không kém là controllerview trong laravel nhé.

1. Controller trong Laravel

1.1 Controller là gì?

Controller là nơi sẽ xử lý mọi vấn đề logic của dự án. Nó được hiểu như là CPU của máy tính vậy, CPU thì chỉ xử lý dữ liệu còn việc lưu dữ liệu sẽ nằm trong bộ nhớ, còn hiển thị dữ liệu là nhiệm vụ của màn hình máy tính. Tương tự như vậy, controller cũng chỉ là trung tâm xử lý dữ liệu, còn việc tương tác truy vấn dữ liệu là nhiệm vụ của model, việc hiển thị dữ liệu là việc của view.

1.2 Tạo controller để sử dụng

Các bạn nhấp shift là nhấp chuột phải vào thư mục dự án, sau đó chọn open command windows here hoặc open powershell here và gõ lệnh: 


php artisan make:controller TenController

2. View trong Laravel

2.1 View là gì?

View chính là mã nguồn giao diện của chúng ta. Mã nguồn này được lưu trong Resources -> Views

2.2 Cơ bản view sử dụng như thế nào?

2.2.1. Gọi view

Ví dụ mình có file giao-dien.blade.php nằm trong thư mục Resources->Views thì mình gọi như sau:


Route::get('/', function () {
return view('giao-dien', ['name' => 'Hảo']);
});
//thuộc tính thứ hai của view là biến truyền đến view đó để sử dụng.

Nếu cũng là file đó nhưng nằm trong Resources->Views -> admin thì mình gọi như sau:


return view('admin.giao-dien', ['name' => 'Hảo']);

2.2.2. Kiểm tra tồn tại view


if (View::exists('admin.giao-dien')) {
     //
}

2.2.3. Truyền dữ liệu đến view


return view('admin.giao-dien', ['name' => 'Hảo']);
​
//nếu chỉ truyển một biến thì sử dụng with(key,value)
return view('greeting')->with('name', 'Victoria');
​
//Nếu muốn truyển nhiều biến với with thì cũng có cách un
return view('admin.trang-chu')->with(compact('data', 'boMon', 'lop', 'khoaHoc', 'coVan', 'chuyenNganh'));
//các biến này có thể là biến mảng

Một biến sử dụng cho nhiều view thì sao? Hãy sử dụng view share. Bạn mở file tại đường dẫn: app\Providers\AppServiceProvider.php và đăng ký các biến dùng chung trong function boot.


<?php
namespace App\Providers;
use Illuminate\Support\Facades\View;
class AppServiceProvider extends ServiceProvider
{
​
     public function register()
     {
          //
     } 
​
     public function boot()
     {
        View::share('key', 'value');
     }
}

Kết Luận

Mình đã hướng dẫn các bạn về controller và view trong laravel, ngoài ra bạn còn phải nắm về middleware trong laravel nữa nhé.



Copyright © 2025 All Right Reserved