无法在Laravel中的__call()中调用父函数

时间:2018-12-23 18:01:02

标签: php laravel inheritance

这是我的下面的代码。

class MyModel extends Model
{
    public function __call($method, $parameters = null) {
        if($method == 'create'){
            return parent::create($parameters[0]);
            if(!$created) {
                throw new \App\Exceptions\EloquentException;
            }else{
                return $created;
            }
        }
    }
}

问题是,当我从邮递员调用MyModel类实例的更新函数时,会发生一些不良情况。它卡住了,每次都必须重新启动计算机。那么问题可能是什么?

1 个答案:

答案 0 :(得分:2)

我将假设您只是尝试为create函数提供一个通用处理程序,也就是说,在create返回EloquentException或{{1的情况下,抛出一个null }}。

在这种情况下,您在false语句的上方有多余的return语句,并且应将父级的create方法的返回值分配给变量if您以后使用。您也可以删除$created部分,因为如果抛出异常,将永远不会执行else下面的代码。

throw

如果您能详细说明要完成的任务,那会更好,我觉得您的做法是错误的。