Php 无法使用call_user_func_数组函数使用Laravel雄辩的findOrFail方法

Php 无法使用call_user_func_数组函数使用Laravel雄辩的findOrFail方法,php,laravel,eloquent,Php,Laravel,Eloquent,我已经搜索了如何用雄辩的方法使用call_user_func_array。但是没有找到任何线索。 我想在雄辩的查询中使用call_user_func_数组方法,使代码更加灵活 代码不工作:- $object = call_user_func_array($this->object_type . '::findOrFail', [$this->object_slug]); 错误:- $object = call_user_func_array($this->object_typ

我已经搜索了如何用雄辩的方法使用call_user_func_array。但是没有找到任何线索。 我想在雄辩的查询中使用call_user_func_数组方法,使代码更加灵活

代码不工作:-

$object = call_user_func_array($this->object_type . '::findOrFail', [$this->object_slug]);
错误:-

$object = call_user_func_array($this->object_type . '::findOrFail', [$this->object_slug]);
错误异常(E_未知) call\u user\u func\u array()要求参数1为有效回调,未找到类“Friendly”

但如果我没有使用call\u user\u func\u数组方法,那么我下面的代码运行正常:-

$object = Friendship::find($this->object_slug);
请告诉我在call\u user\u func\u数组函数中是否使用静态回调方法?如果没有,请建议任何替代方法


问题已解决:-

$object = call_user_func_array($this->object_type . '::findOrFail', [$this->object_slug]);
调用\u user\u func\u数组方法不关心
使用名称空间
。所以在名称空间的情况下,添加类的完整路径

更新代码:-

$object = call_user_func_array($this->object_type . '::findOrFail', [$this->object_slug]);
call_user_func_数组('\SiteApp\friendy\\'.$this->object_type.::findOrFail',[$this->object_slug])


感谢您的帮助:)

显然
call\u user\u func\u array()
不关心导入类的
use
语句,因此您必须使用完全限定的类名:

call_user_func_array('\SiteApp\Friendship\Friendship::findOrFail', [$this->object_slug]);
这取决于您的情况,但最简单的方法可能是将全名存储在
$this->object\u type

// $this->object_type = '\SiteApp\Friendship\Friendship';
call_user_func_array($this->object_type . '::findOrFail', [$this->object_slug]);

你在使用名称空间吗?你为什么使用
调用用户函数数组
?@lukasgeiter我在使用名称空间。而且我已经在我现在的课堂上增加了友谊课
使用SiteApp\friendy\friendy
@ollieread bcoz我必须在许多雄辩的模型中动态地找到数据。我相信问题在于
调用用户函数数组
不关心
使用
语句。是否可以使用
调用用户函数数组('\SiteApp\friendy\.$this->object\u type.::findOrFail',[$this->object\u slug])进行验证