我已經搜索如何使用call_user_func_arra與Eloquent方法。但是沒有發現任何線索。 我想在我的Eloquent查詢中使用call_user_func_array方法使我的代碼更加靈活。無法使用Laravel雄辯findOrFail方法使用call_user_func_array函數
代碼不工作: -
$object = call_user_func_array($this->object_type . '::findOrFail', [$this->object_slug]);
錯誤: -
ErrorException(E_UNKNOWN) call_user_func_array()預計參數1是一個有效的回調,類 '友誼' 不找到。
但是,如果我不使用call_user_func_array方法,那麼我下面的代碼運行良好: -
$object = Friendship::find($this->object_slug);
請指引我的靜態回調方法是否在call_user_func_array功能可以使用?如果不是,那麼請建議任何替代方法。
問題就迎刃而解了: -
call_user_func_array方法不關心use namespaces
。所以在命名空間的情況下添加類的完整路徑。
更新代碼: -
call_user_func_array('\SiteApp\Friendship\\' . $this->object_type . '::findOrFail', [$this->object_slug]);
感謝您的幫助:)
你在使用命名空間嗎? – lukasgeiter
您使用'call_user_func_array'的原因是什麼? – ollieread
@lukasgeiter我使用命名空間。此外,我已經在當前課程中添加了該友誼班。 '使用SiteApp \ Friendship \ Friendship' –