Laravel では、通常、多対多のリレーションシップを処理するために中間テーブルが使用されます。たとえば、ブログには複数のタグを含めることができ、1 つのタグを複数のブログで使用することができます。この関係は、各ブログとタグの対応関係を格納する中間テーブルを使用して処理できます。
ただし、場合によっては、中間テーブルにタグとブログ間の関係の作成時間などの追加データを保存する必要がある場合があります。この場合、中間テーブルの追加属性を使用してこのデータを保存する必要があります。
中間テーブルの追加プロパティの使用は、Laravel の「中間テーブル モデル」を通じて実現できます。このモデル クラスは中間テーブルの管理に使用され、中間テーブルの追加プロパティのクエリなど、多くの便利な機能を提供します。
まず、中間テーブル モデル クラスを作成する必要があります。このクラスは、Artisan コマンドを使用して作成できます。
php artisan make:model Taggable --pivot
このコマンドを実行するときは、中間テーブルの名前を指定する必要があります。Laravel の規則に従って、中間テーブルの名前は「Table 1_Table 2」にする必要があります。
中間テーブル モデルを作成した後、関連するモデルで中間テーブルの追加の属性を定義できます。たとえば、「ブログ」モデルと「タグ」モデルがあり、中間テーブルを使用してそれらを関連付ける場合、次のように関連付けを定義できます。
class Post extends Model { public function tags() { return $this->belongsToMany(Tag::class) ->using(Taggable::class) ->withPivot('created_at'); } }
この例では、## を使用します。 using() メソッドは中間テーブル モデルを
Taggable として指定し、
withPivot() メソッドを使用して中間テーブルの追加属性を指定します。
$tag = Tag::find(1); foreach ($tag->posts as $post) { $pivot = $post->pivot; $createdAt = $pivot->created_at; // do something with $createdAt }
withPivot() メソッドを追加すると、中間テーブルの追加プロパティを簡単にクエリでき、Laravel の機能を最大限に活用できます。
以上がlaravelで中間テーブルの追加属性をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。