我已经搜索如何使用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' –