Невозможно вызвать родительскую функцию внутри __call () в Laravel - PullRequest
0 голосов
/ 23 декабря 2018

Это мой код ниже.

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 голосов
/ 24 декабря 2018

Я попытаюсь предположить, что вы просто пытаетесь создать общий обработчик для функции создания, то есть, чтобы выкинуть EloquentException в случае, если при создании возвращается null или false.

Если это так, у вас есть избыточный оператор return в строке над оператором if, и вы должны присвоить возвращаемое значение метода create родителя переменной $created, которую вы будете использовать позже.Вы также можете удалить часть else, так как код ниже throw никогда не будет выполнен, если выдается исключение.

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

Было бы лучше, если бы вы подробно остановились на задаче, которую пытаетесь достичь, я чувствую, что вы делаете это неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...