Làm thứ làm cho Laravel Request của bạn thú vị hơn

Trick cho Laravel – Đóng gói data gửi về view

Chào các bạn,

Show các bạn 1 simple trick này của PHP để đóng gói data send qua view cho gọn lẹ nhé 😀

1/ Trick cho Laravel – Đóng gói data gửi về view

Ví dụ cụ thể, mình có 3 vars muốn gửi qua view như sau:

// My data
$article = Article::find($id_article); // basic query
$categories = Category::getOptions(); // Basically: Category::pluck('id', 'name')
$editor = $article->editor; // $this->belongsTo(...)

Thông thường chúng ta sẽ hay làm như vầy:

// Normally
return view('admin.article.edit', [
	'article' => $article,
	'categories' => $categories,
	'editor' => $editor,
]);

Bạn nào rảnh hơn sẽ làm như vầy:

// LOL
return view('admin.article.edit')
		->with('article', $article)
		->with('categories', $categories)
		->with('editor', $editor)

Trick ở đây, tuyệt chiêu cuối:

// Final Time
return view('admin.article.edit', compact(
	'article',
	'categories',
	'editor'
));

2/ Giải thích về hàm compact

Function: compact(…$value)

Reference link: https://www.php.net/manual/en/function.compact.php

Hàm compact (của PHP4), từ những value mà bạn truyền vào (article, editor,…), nó sẽ đi tìm cái variable data của bạn trong cái scope hiện tại và nó sẽ tạo ra 1 cái assoc data, trong đó:

  • key name => là cái tên biến (ko có $)
  • value => là giá trị của biến

Demo:

$full_name = "Seth Phat";
$age = 23;
$city = "Ho Chi Minh city";

$arr = compact('full_name', 'age', 'city');

Và cuối cùng $arr của mình là:

Trick cho Laravel - Đóng gói data gửi về view

Từ đó ta dùng hàm này để package lại data và send nó qua view, nó gọn hơn và tiện hơn cho ta rất nhiều trong code.

3/ Kết luận – Trick cho Laravel – Đóng gói data gửi về view

Một trick nhỏ, có thể nhờ Trick cho Laravel – Đóng gói data gửi về view này bạn có thể tiết kiệm được chút ít thời gian trong development =))

Cám ơn các bạn đã quan tâm theo dõi!

facebook
Seth Phát

Seth Phát

Mình là Phát - biệt danh Seth Phát. Hiện đang là một Sr. Full-Stack Engineer. Mình là một người yêu thích và đam mê lập trình và hiện tại đang theo về phần Web là chủ yếu. Mạnh Back-end và khá Front-end, vẫn đang theo đều cả 2 :v. Còn gì bằng khi được làm những thứ mà mình yêu thích, đam mê ;)

Leave a Reply

Your email address will not be published. Required fields are marked *

Bình luận qua Facebook