[英]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返回null
或false
情況下拋出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.