Laravel 5의 복합 키: 솔루션 탐색
Laravel의 모델은 기본적으로 'id'라는 단일 기본 키를 가정합니다. 그러나 여러 열이 복합 키 역할을 할 수 있는 시나리오가 있습니다. 이 기사에서는 이 문제를 해결하는 기술을 살펴봅니다.
복합 키 이해
이 문제는 테이블이 '와 같이 두 개 이상의 열을 기본 키로 사용할 때 발생합니다. id'와 '언어_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;
추가 업데이트
기능 향상 , 두 가지 추가 업데이트가 제공됩니다:
결론
제공되는 특성을 활용하여 복합 키를 효과적으로 관리할 수 있습니다. Laravel 5 모델에서. 이 기술을 사용하면 개발자는 여러 기본 키 열이 있는 데이터베이스를 원활하게 모델링할 수 있습니다.
위 내용은 Laravel 5 모델에서 복합 키를 어떻게 구현할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!