簡體   English   中英

無法在Laravel中的__call()中調用父函數

[英]Can't call parent function inside __call() in Laravel

這是我的下面的代碼。

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類實例的更新函數時,會發生一些不良情況。 它卡住了,每次都必須重新啟動計算機。 那么問題可能是什么呢?

我將假設您只是在嘗試為create函數提供一個公共處理程序,也就是說,在create返回nullfalse情況下拋出EloquentException

如果是這種情況,則在if語句上方的行上有一個多余的return語句,並且應該將父級的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;
        }
    }
}

如果您能詳細說明要完成的任務,那會更好,我覺得您做錯了方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM