[英]Storing instances in Laravel Service Container that may be null
我試圖在 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
將它存儲為一個屬性,並將其作為單例存儲在容器中,但想知道我是否首先遺漏了關於服務容器的一些重要內容。
您可以使用optional
助手:
return optional(Department::find($departmentId));
現在,當您調用綁定類時,您嘗試針對它訪問的任何屬性在它為 null 時也將返回 null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.