私はlaravel 5.4を使用しています。私はモデルクラスの新しいインスタンスを取得するクラス内のメソッドを持っています。クラスのフルネームは実行時に計算されるため、計算されたクラス名が存在しない可能性があります。クラスが存在しない場合、例外を無視したいので、代わりにnull
を返したいと思います。Laravelは試してみると例外イベントを投げています
しかし、例外が発生した場合でも、私はそれがない
[symfonyの\コンポーネント\デバッグ\例外\ FatalThrowableError] クラス「のApp \モデル\ CREATEDBY」すべきでないと考えていると思ったの下に、Laravelはまだ例外をスロー見つかった
実行時に文字列App\Models\CreatedBy
が計算されたことに注意してください。ここで
は私のコード
スローされたエラーを無視してnull
を返すことで決済することができますどのように
private function getForeignModelInstance()
{
try {
if (!$this->foreignModel) {
$model = $this->getFullForeignModel();
if ($model) {
$this->foreignModel = new $model();
}
}
return $this->foreignModel;
} catch (\Exception $e) {
return null;
}
}
のですか?
例外の代わりに 'Throwable'を受け取ります – MoeinPorkamel
' FatalThrowableError'は 'Exception'を拡張していますので、違いはありません。私はそれを試みたが、同じエラーが発生しました。 –
私は同じ問題を抱えていますが、私にとってはデータベース移行の中にあるので、本当にクリーンアップコードを確実に実行できる必要があります。私は "例外が発生しないようにする"タイプの解決策が有効であるとは思わない。私は基本的なPHPのキャッチがここで働いていない理由を理解したい、私たちは何か間違っているのですか? – madz