【发布时间】:2019-12-18 15:32:30
【问题描述】:
我正在尝试将当前部门的实例存储在 Laravel 服务容器中,但有时该部门可能是 null。
部门本身是从会话中加载并按如下方式检索的:
private function resolveCurrentDepartmentFromSession(Request $request)
{
$departmentId = $request->session()->pull(self::CURRENT_DEPARTMENT);
return Department::find($departmentId);
}
我通过以下方式将它存储在服务容器中:
App::instance('Department\Current', $department);
并将其检索为:
$department = App::bound('Department\Current') ? App::make('Department\Current') : null;
有没有办法解决实例IF设置,否则返回null?像App::instanceIfSet('Department\Current') 这样的东西?或者我应该避免在服务容器中存储“有时为空”的值吗?我可以创建一个 CurrentDepartment 类,将其存储为属性并将其作为 Singleton 存储在容器中,但我想知道我是否首先遗漏了有关服务容器的一些重要内容。
【问题讨论】:
-
你可能误用了服务容器,为什么不能只添加一个助手来从会话中检索部门?
标签: php laravel laravel-service-container