Quay lại

Global view data cho tất cả các actions trong Laravel Blade Chuyên mục PHP và Laravel    2023-07-29    422 Lượt xem    46 Lượt thích    comment-3 Created with Sketch Beta. 0 Bình luận

Global view data cho tất cả các actions trong Laravel Blade

Laravel's Blade là một hệ thống khuôn mẫu tuyệt vời kết hợp rất tốt với hệ sinh thái của Laravel. Đặt một số dữ liệu vào view thật dễ dàng và hiển thị những dữ liệu đó vào template thật dễ dàng. Chẳng hạn, nếu bạn muốn chia sẻ một số dữ liệu từ controller’s action sang view, bạn sẽ làm như này :

class HomeController extends BaseController
{
    public function __construct()
    {
       parent::__construct();
    }

    public function index()
    {
      return view('greetings', ['name' => 'Victoria']);
    }
}

Trong ví dụ trên, một biến $name có sẵn để hiển thị trong blade template hellos.blade.php. Bạn có thể pass nhiều dữ liệu hơn theo cách tương tự nhưng bạn đã có ý tưởng.

 

Nhưng nếu bạn muốn chia sẻ một số dữ liệu trên tất cả các controller actions thì sao? Đọc để tìm hiểu.

Sử dụng View::share cho sharing data

Để chia sẻ dữ liệu chung trên mỗi view của controller’s actions, bạn có thể sử dụng phương thức  facade’s share Illuminate\Support\Facades\View bằng cách thiết lập một cặp key-value như vậy để sau đó có thể truy cập được trên tất cả các actions’ views.

use Illuminate\Support\Facades\View;

class HomeController extends BaseController
{
    public function __construct()
    {
       parent::__construct();

       View::share('common_data', [
         'foo' => 'bar'
        ]);
    }

    public function index()
    {
      return view('index');
    }

    public function show()
    {
      return view('show');
    }
}

Như bạn có thể thấy ở đây, $common_data sẽ có sẵn cho mỗi view, cả index.blade.phpshow.blade.php đều giống nhau.

 

Điều này hữu ích trong các tình huống, chẳng hạn như có các mục menu phổ biến trong một nhóm hành động cụ thể và bạn không muốn lặp lại code nhiều lần.

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday