Laravel の新しいバージョンには、非常に便利な補助メソッドがあります: optional()
この方法の適用シナリオは何ですか?実際、さらにコードを記述すると、次のようなエラー メッセージが頻繁に発生します。
Call to a member function on null object...
これは実際には、コード内の特定のオブジェクトが空であるため、メソッドを呼び出したり属性を取得したりするときに発生します。上記のエラーメッセージが報告されます。たとえば、例を見てみましょう:
User
のシステムには、Profile
のモデル ファイルとUser もあります。
にはProfile
があります (Profile
にはユーザーのアドレス情報が含まれます)
public function profile(){ return $this->hasOne(Profile::class); }
次に、User
情報ページで、次のコードは、User
のアドレスを取得します。
$user->profile->address;
に User
に対応する Profile
がない場合、データベース、今回はそれが行われます 記事の冒頭で述べたように、同様のエラーが発生しました。
したがって、現時点では、
optional()
が役に立ちます。
次のようにユーザーのアドレス情報を取得するだけです。
optional$user->profile)->address
現時点では、profile
が null (null
) であっても、このコード行はエラーを報告せず、空の文字列を表示します。
とても便利ですね!ヘルパー関数 optional()
を使用すると、多くの同様のコードで、オブジェクトが null
になるかどうかわからないときに、optional ()
Come を追加できます。保険のために!