以防你想知道背景:
我有一个单一的联系人'对于许多类型的联系人,数据库表(mysql),我想要实现的是根据联系人类型将属性传递给查询。 (注意:此代码包含一些Laravel Eloquent语法)
$attributes=ContactAttributes::where('type',$contact->type_id)->first()->attributes;
//array of attribute names
call_user_func_array($contact->lists(),$attributes);
//try to call lists with attribute names which will be translated to a SQL query SELECT ... FROM 'contacts'
但似乎call_user_func_array
实际上是调用lists()函数而没有任何返回错误的参数。我想要做的就是实际调用列表函数,将属性作为参数,而不是像lists($attributes[0],$attributes[1],$attributes[2],...)
这样的参数。
有什么想法吗?
答案 0 :(得分:0)
如果要使用对象调用方法,则应同时指定对象和方法:
call_user_func_array( array( $contact, 'lists' ), $attributes);
中有更多示例