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à:
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!