Php 如何在Laravel中渲染之前更改视图指定的数据?
Laravel相关问题 对于下面的SomeController类,我返回带有“data”的视图。我想搜索指定的“数据”是否有“id”列,并在呈现视图之前对其进行加密。因此,当我从视图文件访问“数据”时,“id”是加密的Php 如何在Laravel中渲染之前更改视图指定的数据?,php,laravel,laravel-middleware,Php,Laravel,Laravel Middleware,Laravel相关问题 对于下面的SomeController类,我返回带有“data”的视图。我想搜索指定的“数据”是否有“id”列,并在呈现视图之前对其进行加密。因此,当我从视图文件访问“数据”时,“id”是加密的 class SomeController { public function index(): View { $data = array( 'id' => 1, 'name' => 's
class SomeController
{
public function index(): View
{
$data = array(
'id' => 1,
'name' => 'siam'
);
return view('Views/View/Index', compact('data'));
}
}
也许可以在扩展类方法中扩展视图类和加密。但我希望在不扩展View类的情况下完成它
- 意念
提前感谢大家。在呈现
视图时,Laravel将发送一个事件。您可以通过创建一个通用的ViewComposer
钩住此事件,如下所示:
View::composer('*', function ($view) {
if ($view->id && is_int($view->id)) {
$view->id = encrypt($view->id);
}
});
有关详细信息,请参见ViewComposer上的