LARAVEL 4X CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 4: Sử dụng View trong laravel

Trong bài này chúng ta sẽ tìm hiểu đến View, một thành phần khá quan trọng trong mô hình MVC. Nhiệm vụ của View là nhận dữ liệu từ Controller và sau đó dựa vào layout của giao diện nó sẽ xử lý dữ liệu theo yêu cầu. Cũng như các Framework khác chúng ta vẫn có các khái niệm như cách tạo view, cách truyền biến qua view và quy tắc tạo view, chi tiết thế nào thì chúng ta cùng tìm hiểu nhé.

1. Tạo file view trong laravel

Trong laravel, mặc định tất cả các file view sẽ được lưu trong thư mục app/views với đuôi file là .php hoặc .blade.php nếu bạn sử dụng blade-template (khuyên dùng), việc tạo thì 2 loại file này tương tự nhau, bạn chỉ việc tạo file mới trong thư mục app/views là được. Ví dụ bạn vào thư mục app/views tạo file freetuts.blade.phpbasic.php thì bạn sẽ được 2 view là freetuts và basic. Nội dung trong file view thì có thể là bất cứ gì như code javascript, jquery, html, css, php, ...

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Như các bạn thấy, cho dù đuôi file - phần mở rộng cho dù khác nhau nhưng cũng là view tương tự nhau, việc gọi view cũng tương tự, chỉ khác việc sử dụng trong view mà thôi (sẽ nói ở dưới).

Tạo sub-view trong laravel

Để tạo sub-view trong laravel rất đơn giản, bạn chỉ việc tạo thư mục con và tạo file view trong đó. Ví dụ bạn muốn tạo sub-view login của trong thư mục auth thì làm theo bước sau:

Bước 1: tạo thư mục auth trong thư mục app/views

Bước 2: tạo file view login.php trong thư mục auth đã tạo

Vậy là bạn có sub-view rồi đấy! Ở bài sau mình sẽ giới thiệu về template .blade.php

2. Gọi view trong laravel

Để gọi view trong laravel ta dùng cú pháp sau:

View::make($view, $data = array(), $mergeData = array());

Trong đó:

  • $view là tên view mà bạn đã tạo
  • $data là mảng dữ liệu bạn truyền cho view thao tác để hiển thị
  • $mergeData là mảng dữ liệu sẽ được merge với $data bằng hàm array_merge
  • $view là bắt buộc, còn 2 tham số còn lại là tùy chọn

Nếu bạn muốn gọi sub-view thì sử dụng dấu chấm . để biểu thị cho 1 cấp thư mục. Ví dụ bạn gọi đến sub-view login ở thư mục auth như ví dụ ở trên thì bạn viết như sau:

View::make('auth.login');

Theo mô hình MVC thì View sẽ được gọi trong Controller nên trong laravel tương tự như vậy, tuy nhiên bạn có thể gọi nó trong route cũng được, cơ mà ai lại làm ngược như thế wink.

Sau khi gọi view bạn cũng có thể gán vào biến hoặc return ngay.

Ví dụ: Ở file app/routes.php bạn thêm như sau:

Route::controller('/views','ViewController');

Sau đó tạo file ViewController.php ở thư mục app/controllers với nội dung như sau:

<?php
	class ViewController extends Controller
	{
		public function getReturn()
		{
			return View::make('return');
		}
		public function getVariable()
		{
			$var= View::make('return');
			return $var;
		}
	}

Bạn tạo file view return.blade.php ở thư mục app/views với nội dung như sau:

<h1>Freetuts.net</h1>

Sau đó bạn truy cập vào 2 đường dẫn:

  • http://tênmiềnảocủabạn/views/return
  • http://tênmiềnảocủabạn/views/variable

Thì bạn sẽ nhận được 2 kết quả giống nhau như hình dưới đây:

su dung view trong laravel PNG

3. Truyền biến qua view

Ta có 3 cách truyền biến qua view như sau:

Cách 1: Truyền biến ngay khi gọi view

Ở đây là ví dụ nên mình viết ngắn gọn để hiểu về truyền biến qua view, vậy nên mình làm ở route nhưng khi làm việc các bạn không nên làm như thế mà nên đặt ở controller.

Tại file routes.php bạn thêm đoạn code sau:

Route::get('/data', function()
{
	return View::make('passdata',['email'=>'thinhbuzz@freetuts.net','username'=>'MrBuzz'],['nickname'=>'Buzz']);
});

Bạn tạo file view passdata.blade.php với nội dung như sau:

<p><strong>Username:</strong> {{$username}}</p>
<p><strong>Email:</strong> {{$email}}</p>
<p><strong>Nick:</strong> {{$nickname}}</p>

Sau đó bạn truy cập vào URL:

  • http://tênmiềnảocủabạn/data

Bạn sẽ nhận được kết quả như sau:

su dung view trong laravel 2 PNG

Cách 2: Sử dụng with

Cú pháp sử dụng như sau:

View::make($view)->with($key,$value);

Trong đó:

  • $view (string): là tên view sẽ được gọi
  • $key (string hoặc array): nếu là chuỗi thì $key sẽ đóng vai trò là biến dùng để sử dụng trong view nếu là mảng thì mỗi khóa của mảng sẽ là 1 biến trong view
  • $value (string): nếu $key là chuỗi thì $value chính là giá trị của $key trong view, ngược lại thì $value không có giá trị trong view.

Ví dụ:

Khi $key là mảng:

Sử dụng lại ví dụ ở phần trên, thay phần route bằng đoạn sau:

Route::get('/data', function()
{
	return View::make('passdata')->with(['email'=>'thinhbuzz@freetuts.net','username'=>'MrBuzz','nickname'=>'Buzz']);
});

Khi bạn truy cập vào thì cũng được kết quả tương tự

Khi $key là chuỗi:

Ở route bạn thêm:

Route::get('/is-string', function()
{
	return View::make('string')->with('nickname','Buzz');
});

Bạn tạo file view string.blade.php với nội dung như sau:

<p><strong>Nick:</strong> {{$nickname}}</p>

Sau đó bạn truy cập vào URL:

  • http://tênmiềnảocủabạn/is-string

Bạn sẽ nhận được kết quả như sau:

su dung view trong laravel 3 PNG

Sử dụng magic method

Cú pháp sử dụng:

View::make($view)->withName($value);

Trong đó:

  • $view (string): là tên view sẽ được gọi.
  • withName:
    • with sẽ là bắt buộc có và viết hường.
    • Name ở đây là tên biến sẽ gọi trong view và chữ cái đầu tiên viết in hoa và các chữ cái còn lại viết thường.
  • $value: giá trị của biến của $name

Sử dụng lại ví dụ ở trên ($key là chuỗi), thay phần route bằng đoạn sau:

Route::get('/is-string', function()
{
	return View::make('demo')->withNickame('Buzz');
});

Bạn cũng sẽ nhận được kết quả tương tự.

3. Kết luận

Như vậy trong bài này mình đã giới thiệu cho các bạn về view trong laravel, các bạn thấy rằng mình có nhắc đến blade rồi blade template hay những cú pháp kỳ quặc chưa từng thấy như {{$nickname}} chẳng hạn, vậy blade là gì? Đó chính là nội dung của bài tiếp theo: Blade template engine trong laravel.

Cùng chuyên mục:

Bài 1: Laravel là gì? hướng dẫn cài đặt laravel bằng Composer

Bài 1: Laravel là gì? hướng dẫn cài đặt laravel bằng Composer

Bài 04: Tìm hiểu cấu trúc của Laravel 5.x

Bài 04: Tìm hiểu cấu trúc của Laravel 5.x

Và trong bài này, chúng ta sẽ tìm hiểu cấu trúc của Laravel để có…

Bài 03: Hướng dẫn cài đặt Laravel 5.x

Bài 03: Hướng dẫn cài đặt Laravel 5.x

Để bắt đầu series tự học Laravel 5x thì công việc đầu tiên là bạn…

Bài 02: Hướng dẫn sử dụng Composer PHP

Bài 02: Hướng dẫn sử dụng Composer PHP

Composer là một công cụ tuyệt vời cho tín đồ PHP và trong bài này,…

Bài 11: Sử dụng Query Builder (Model) trong laravel

Bài 11: Sử dụng Query Builder (Model) trong laravel

Model trong mô mình MVC dùng để tương tác với cơ sở dữ liệu và…

Bài 10: Sử dụng Blade template engine trong Laravel

Bài 10: Sử dụng Blade template engine trong Laravel

Template engine có tác dụng giúp sạch đi những đoạn code PHP nằm trong View…

Bài 3: Sử dụng Controller trong laravel

Bài 3: Sử dụng Controller trong laravel

Sau khi route nhận được request thì sẽ chuyển hướng request đến cho controller và…

Bài 07: Sử dụng Route::filter và Route::group trong laravel

Bài 07: Sử dụng Route::filter và Route::group trong laravel

Giới thiệu về 2 loại route rất quan trọng trong việc xử lý logic và…

Bài 06: Sử dụng Route::controller và Route::resource trong laravel

Bài 06: Sử dụng Route::controller và Route::resource trong laravel

Ở bài trước mình có giới thiệu tổng quan về rout trong Laravel và việc…

Bài 02: Tổng quan về route trong laravel

Bài 02: Tổng quan về route trong laravel

Trong khuôn khổ bài viết này, mình sẽ giới thiệu đến bạn route trong laravel…

Bài 04: Những công cụ tốt nhất hỗ trợ học laravel

Bài 04: Những công cụ tốt nhất hỗ trợ học laravel

Trước hết, ai khi học php đều chọn cho mình 1 IDE hoặc text editor…

Bài 02: Cấu trúc thư mục cơ bản của Laravel

Bài 02: Cấu trúc thư mục cơ bản của Laravel

Bất kì một Framework nào cũng đưa ra một mô hình các cấu trúc thư…

Bài 03: Cài đặt Openserver và tạo domain ảo trên localhost

Bài 03: Cài đặt Openserver và tạo domain ảo trên localhost

Trong bài 3 này mình sẽ giới thiệu các bạn cách tạo tên miền ảo…

Bài 01: Composer là gì?

Bài 01: Composer là gì?

Composer là một công cụ quản lý các thư viện trong PHP (Dependency Management), công…

Một cách quản lý filter trong Laravel

Một cách quản lý filter trong Laravel

Filter là một thành phần tuyệt vời mà laravel cung cấp cho chúng ta, nó…

Sử dụng Event trong Laravel

Sử dụng Event trong Laravel

Trong bài này mình sẽ giới thiệu event, cách tạo event và bắt event trong…

Bài 01: Laravel là gì? Hướng dẫn cài đặt laravel trên windows

Bài 01: Laravel là gì? Hướng dẫn cài đặt laravel trên windows

Trong chuỗi bài viết này mình sẽ viết về laravel 4.2.* trong môi trường windows,…

Top