在 Laravel 裡透過 Livewire 讀取資料很方便,在建立 Livewire 相關的檔案後,可以在 Livewire 的 controller 裡把資料帶到前端:
public function render()
{
$flash = $this->flashNews();
return view('livewire.break-news-bar', compact('flash'));
}
protected function flashNews()
{
return Cache::remember('flash',300,function(){
return FlashMessage::where('created_at', '>=', now()->subHours(1))
->latest()->first();
});
}
這樣只要在要使用這個 Livewire 的地方把資料放進去就好了。
@livewire('break-news-bar')