ホームページ > バックエンド開発 > PHPチュートリアル > Laravel 5モデルで複合主キーを実装するにはどうすればよいですか?

Laravel 5モデルで複合主キーを実装するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-01 09:17:14
オリジナル
253 人が閲覧しました

How to Implement Composite Primary Keys in Laravel 5 Models?

Laravel 5 モデルの複合主キー

多くのデータベースは複合主キーを採用しており、複数の列が各行の一意の識別子を形成します。このような場合、Laravel のデフォルトの主キー「id」が常に十分であるとは限りません。

複合キーの実装

Laravel 5 モデルで複合主キーを定義するには、次のような PHP トレイトを使用できます。以下:

trait HasCompositePrimaryKey
{
    ...
    // ... Additional code from the answer ...
    ...
}
ログイン後にコピー

この特性をモデルに含めて、 $primaryKey プロパティを複合キーを表す配列に追加します:

class MyModel extends Eloquent
{
    use Traits\HasCompositePrimaryKey;

    protected $primaryKey = ['key1', 'key2'];
    ...
}
ログイン後にコピー

Laravel の変更

この特性は、複合キーを処理するために特定の Laravel メソッドをオーバーライドします:

  • getIncrementing(): 非増分プライマリを示すために false を返します。 Keys.
  • setKeysForSaveQuery(): 保存操作用の複合キーに基づいてクエリ フィルターを構築します。
  • find(): カスタム メソッドレコードのキー値の配列を受け入れます

注意事項と制限事項

このソリューションは複合キーの回避策を提供しますが、いくつかの制限があります。

  • Laravel の変更が必要です。フレームワークは、すべてのシナリオで望ましいとは限りません。
  • 複雑なユースケースには適していない可能性があります。リレーションシップ、熱心な読み込み、その他の高度な機能が含まれます。
  • find() メソッドは、さまざまなデータ型やインデックス構造に対応するために調整が必要な場合があります。

代替アプローチ

特性ソリューションが不適切であることが判明した場合は、カスタム主キーまたは複合キーを管理する別の方法の使用を検討してください。さらに詳しいガイダンスについては、Laravel のドキュメントとオンライン リソースを参照してください。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート