Laravelに関連モデルが存在するかどうかを確認するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-05 14:12:02
オリジナル
574 人が閲覧しました

How to Check if a Related Model Exists in Laravel?

Laravel での関連モデルの存在の確認

Laravel では、Eloquent モデルはデータベース エンティティを表し、それらのエンティティ間の関係を管理するための便利な方法を提供します。ただし、リレーションシップを操作する場合、さらなる操作を実行する前に関連モデルが存在するかどうかを確認する必要がある場合があります。

次のコードを考えてみましょう。

<code class="php">public function option() {
    return $this->hasOne('RepairOption', 'repair_item_id');
}

public function setOptionArrayAttribute($values)
{
    $this->option->update($values);
}</code>
ログイン後にコピー

このシナリオでは、別のモデルと 1 対 1 の関係を持つモデル。このモデルを作成または更新するときは、関連するモデルが存在するかどうかを確認して、更新するか作成するかを決定する必要があります。

解決策 1 (Laravel 7.2 ):

Laravel 7.2 以降では、リレーション オブジェクトでexists() メソッドを使用して、関連モデルが存在するかどうかを確認できます:

<code class="php">$model = RepairItem::find($id);
if (Input::has('option')) {
    if ($model->option()->exists()) {
        // Option exists, update it
    } else {
        // Option does not exist, create it
    }
}</code>
ログイン後にコピー

解決策 2 (Laravel 7.2 より前):

Laravel 7.2 より前のバージョンでは、リレーション オブジェクトで count() メソッドを使用して、関連モデルが存在するかどうかを確認できます:

<code class="php">if (count($model->option)) {
    // Option exists
} else {
    // Option does not exist
}</code>
ログイン後にコピー

注:このメソッドは、リレーションが単一値リレーション (たとえば、hasOne、belongsTo) である場合にのみ機能します。多対多またはその他のコレクションベースのリレーションシップの場合、リレーションのコレクションに対して count() や isNotEmpty() などのメソッドを使用して、関連モデルが含まれているかどうかを確認できます。

以上がLaravelに関連モデルが存在するかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!