Laravel 5 の複合キー: ソリューションの探索
Laravel のモデルは、デフォルトで「id」という名前の単一の主キーを想定します。ただし、複数の列が複合キーとして機能するシナリオもあります。この記事では、この課題に対処する手法について説明します。
複合キーについて
この問題は、テーブルが ' のように 2 つ以上の列を主キーとして使用するときに発生します。 id」と「 language_id 」。これを Laravel でモデル化するには、複合キーを処理する方法を確立する必要があります。
PHP トレイトの使用
Eloquent の機能を強化するために、HasCompositePrimaryKey と呼ばれる PHP トレイトを導入します。複合材料の処理能力キー:
namespace App\Model\Traits; // Import necessary classes trait HasCompositePrimaryKey { public function getIncrementing() { return false; } protected function setKeysForSaveQuery(Builder $query) { foreach ($this->getKeyName() as $key) { $query->where($key, '=', $this->$key); } return $query; } protected static function find($ids, $columns = ['*']) { $me = new self; $query = $me->newQuery(); foreach ($me->getKeyName() as $key) { $query->where($key, '=', $ids[$key]); } return $query->first($columns); } }
モデルとの統合
特性を複合キー モデルと統合するには、以下を追加します:
// Define the primary key protected $primaryKey = ['id', 'language_id']; // Include the trait use Traits\HasCompositePrimaryKey;
追加のアップデート
機能強化のため、2 つの追加アップデートがあります。提供:
結論
提供された特性を利用して、複合キーを効果的に管理できますLaravel 5モデルでは。この手法により、開発者は複数の主キー列を含むデータベースをシームレスにモデル化できます。
以上がLaravel 5 モデルで複合キーを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。