【发布时间】:2016-04-26 09:59:57
【问题描述】:
我已经设置了一些视图合成器,以便将一般数据传递给每个请求的主布局,但我注意到这可能是性能缺陷。
例如我有一个CharityComposer,它在其__construct() 方法中设置了一个受保护的属性$charities,其结果为Charity::all()。每个Charity 模型都有一个自定义属性totalAmountUnpaidDonations,这是对所有$charity->donations[$index]->amount 的简单计算,其中Donation 的属性paid 设置为0。
当totalAmountUnpaidDonations 大于 0 时,我想在我的主布局中使用通知来提醒人们注意这一事实。
但是当我 var_dump CharityComposer 中的变量时,我看到它被 var_dumped 6 次。这 6 次中有 4 次来自 Blade 模板中的部分包含,另外 2 次(我认为)用于主布局和控制器实际为给定路由返回的视图。
有没有办法防止这种情况并让视图编写器在每个请求中运行一次?就像一种 RequestComposer,但我不相信这些存在于 Laravel 的上下文中。还是我应该以不同的方式进行设置?
【问题讨论】:
标签: php laravel optimization