我正在开发一个动态添加方法的程序包,因此我应该在laravel雄辩的模型中重写__call方法。我将其写为特征,并且可以使用,但是如果使用另一个也覆盖__call的特征的模型也抛出错误,并显示一条消息:“特质方法__call尚未应用,因为与其他特征方法发生了冲突” >
我的特征码是这样的:
trait HasX
{
public function __call($name, $arguments)
{
if($name== 'x') return 'x';
return self::__call($name, $arguments);
}
}
它工作得很好,但是如果我使用另一个特质也可以覆盖这些特质,则会抛出该错误。 例如:
trait HasY
{
public function __call($name, $arguments)
{
if($name== 'y') return 'y';
return self::__call($name, $arguments);
}
}
什么是实现此目标的正确方法?