laravelクエリは1対多をキャンセルします
Laravel は、最も人気のあるオープン ソースの PHP Web アプリケーション フレームワークの 1 つであり、その使いやすさ、効率性、柔軟性により、Laravel を使用して高品質の Web アプリケーションを作成する開発者が増えています。
Laravel では、1 対多のデータ関係、つまりマスター テーブルと複数のスレーブ テーブル間の関係がよく発生します。この関係は、データベース内の外部キーを通じて実現できます。 Laravel では、Eloquent ORM (オブジェクト リレーショナル マッピング) を使用して、1 対多のデータ クエリ操作を簡単に実行できます。この記事では主に、Laravelで1対多のデータリレーションシップをクエリおよびキャンセルする方法を紹介します。
1. 1 対多のデータ関係をクエリする
Laravel では、Eloquent ORM を使用して 1 対多のデータ関係をクエリできます。まず、対応するモデルと関係を定義する必要があります。たとえば、「users」テーブルと「orders」テーブルがあります。各ユーザーは複数の注文を持つことができます。これを表すためにユーザー モデルでorders() メソッドを定義できます。 1 対多の関係:
class User extends Model { /** * 获取与用户相关联的所有订单。 */ public function orders() { return $this->hasMany('AppOrder'); } }
上記のコードでは、hasMany() メソッドを使用して、ユーザーに関連付けられたすべての注文を定義します。このメソッドは 2 つのパラメーターを受け取ります。最初のパラメーターはスレーブ モデルです。 name の 2 番目のパラメータは外部キーの名前です (デフォルトでは、外部キー名は依存モデルの名前に _id を加えたものです)。次に、次のように order() メソッドを使用して、ユーザーに関連付けられたすべての注文をクエリします。
$user = User::find(1); // 获取与用户相关联的所有订单 $orders = $user->orders;
上記のコードでは、最初に find() メソッドを使用して、ID 1 のユーザー オブジェクトの注文を検索します。次に $user->orders を使用して、そのユーザーに関連付けられたすべての注文を取得します。
注文をさらにフィルタリングする必要がある場合は、クエリ ビルダーを使用してクエリをフィルタリングできます。例:
// 获取与用户相关联的价格超过10元的订单 $orders = $user->orders()->where('price', '>', 10)->get();
上記のコードでは、where() メソッドを使用して、注文金額 10元以上の注文。
2. 1 対多のデータ関係をキャンセルする
Laravel では、マスター テーブルとスレーブ テーブル間の 1 対多の関係をキャンセルする必要がある場合があります。たとえば、注文をユーザーに従属させ、関連付けを解除できます。
Laravel では、外部キーを null に設定することで、レコードとその依存モデルの間の関係をキャンセルできます。たとえば、ID 1 の注文を ID 2 のユーザーに従属させたい場合は、次のように実行できます。
$order = Order::find(1); // 取消该订单与之关联的用户 $order->user_id = null; $order->save();
上記のコードでは、最初に find() メソッドを使用して、 1 の注文オブジェクトの ID を指定し、注文の user_id 属性を null に設定し、最後に save() メソッドを使用して変更を保存します。
ユーザーとそれに関連付けられたすべての注文との間の関係をキャンセルする必要がある場合は、次のように行うことができます:
$user = User::find(1); // 取消该用户与相关联订单之间的关系 $user->orders()->update(['user_id' => null]);
上記のコードでは、最初に find() メソッドを使用します。 ID 1 のユーザー オブジェクトを検索し、orders() メソッドを使用してユーザーに関連付けられたすべての注文を取得し、次に update() メソッドを使用してすべての注文の user_id 属性を null に設定します。
3. 概要
Laravel では、Eloquent ORM を使用して 1 対多のデータ クエリ操作を簡単に実行できます。通常、対応するモデルとリレーションシップを定義することで 1 対多のデータ リレーションシップを実装でき、クエリ時にクエリ ビルダーを使用してデータをさらにフィルタリングできます。同時に、通常は外部キーを null に設定することで、マスター テーブルとスレーブ テーブル間の 1 対多の関係をキャンセルすることもできます。 Laravel アプリケーションを作成するときは、開発効率と作成されたコードの品質を向上させるために、Eloquent ORM の機能を最大限に活用する必要があります。
以上がlaravelクエリは1対多をキャンセルしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

この記事では、堅牢なLaravel Restful APIの構築をガイドします。 プロジェクトのセットアップ、リソース管理、データベースインタラクション、シリアル化、認証、承認、テスト、および重要なセキュリティベストプラクティスをカバーしています。 スケーラビリティチャレに対処します

この記事では、LaravelでOAUTH 2.0認証と承認を実装しています。 League/OAuth2-Serverやプロバイダー固有のソリューションなどのパッケージを使用して、データベースのセットアップ、クライアント登録、承認サーバー構成を強調しています

この記事では、コンポーネントを使用してLaravelで再利用可能なUI要素の作成とカスタマイズについて説明し、組織のベストプラクティスを提供し、パッケージを強化することを提案します。

この記事では、スケーラビリティ、信頼性、セキュリティに焦点を当てたクラウドネイティブ環境でLaravelを展開するためのベストプラクティスについて説明します。重要な問題には、コンテナ化、マイクロサービス、ステートレス設計、最適化戦略が含まれます。

この記事では、Laravelでカスタム検証ルールの作成と使用について説明し、それらを定義および実装する手順を提供します。再利用性や特異性などの利点を強調し、Laravelの検証システムを拡張する方法を提供します。

PHPフレームワークの選択に関しては、LaravelとSymfonyは最も人気があり広く使用されているオプションの1つです。各フレームワークは、独自の哲学、特徴、強みをテーブルにもたらし、さまざまなプロジェクトやユースケースに適しています

この記事では、Laravelでカスタムブレードディレクティブの作成と使用を行い、テンプレートを強化します。ディレクティブの定義、テンプレートでそれらを使用し、大規模なプロジェクトでそれらを管理することをカバーし、改善されたコードの再利用性やRなどの利点を強調しています

この記事では、Laravelの最適なファイルアップロードとクラウドストレージ戦略を調べます。 ローカルストレージとクラウドプロバイダー(AWS S3、Google Cloud、Azure、DigitalOcean)、セキュリティ(検証、消毒、HTTPS)およびパフォーマンスオプティを強調しています
