Controller và View trong Laravel
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à controller và view trong laravel nhé.
Contents
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é.