yii 2.0 activerecord : 객체 관계 맵핑에 대한 깊은 다이빙 yii 2.0의 ActiveRecord는 ORM (Object-Relational Mapping) 인터페이스를 제공하여 데이터베이스 상호 작용을 단순화합니다. Laravel 및 Ruby on Rails와 같은 프레임 워크에서 흔히 볼 수있는이 접근법은 대량 할당, 검증 및 시나리오 기반 동작과 같은 기능을 제공합니다. 기능과 고급 기능을 탐색합시다.
핵심 기능 (Yiibasemodel에서 상속) :
속성 :
속성에 배열을 할당하여 및 메소드를 활용하여 촉진됩니다. 속성 검색도 마찬가지로 및 를 사용합니다. 사용자 인터페이스에 중요한 속성 레이블은 디스플레이 목적으로 정의됩니다.
검증 : 메소드는 속성에 대한 유효성 검사 규칙을 정의하여 데이터 무결성을 보장합니다. 기본적으로 "안전한"속성 (정의 된 유효성 검사 규칙이있는 사람) 만 대량 할당 할 수 있습니다.
attributes
ActiveRecord 모델 생성 : __set()
이 예제는 간단한 블로그 구조를 사용합니다 (위의 이미지 참조). gii를 사용하여 생성 된 모델은 기본 구조를 보여줍니다 : setAttributes()
yiibaseComponent
__get()
메소드의 추가에 주목하십시오.
고급 사용 : getAttributes()
yii 2.0 activerecord는 여러 고급 기능으로 기본 기능을 향상시킵니다.
rules()
배열 가능 : 트레이트를 통해 상속 된 메소드는 모델을 배열로 변환합니다. 계산 된 필드를 포함하여 배열의 컨텐츠를 사용자 정의 할 수 있습니다. 예를 들어, 쉼표로 구분 된 태그 문자열을 추가합니다 : namespace app\models; use Yii; class Articles extends \yii\db\ActiveRecord { // ... (tableName(), rules(), attributeLabels() as shown in the original text) ... public function getAuthors() { return $this->hasOne(Authors::className(), ['ID' => 'AuthorsID']); } public function getArticlestags() { return $this->hasMany(Articlestags::className(), ['ArticlesID' => 'ID']); } public function getTags() { return $this->hasMany(Tags::className(), ['ID' => 'TagsID']) ->viaTable(Articlestags::tableName(), ['ArticlesID' => 'ID']); } }
beforeValidate()
afterSave()
<🎜 🎜> <<> 동작 : LastEdited
동작은 코드를 수정하지 않고 모델에 기능을 추가합니다. YII는 <🎜 public function extraFields() { return [ 'tagsString' => function () { return implode(', ', array_map(function ($tag) { return $tag->Tag; }, $this->tags)); }, ]; }
BlameableBehavior
yii 2.0 activerecord는 강력하고 유연한 ORM을 제공하며 데이터베이스 상호 작용을 크게 단순화합니다. 더러운 속성, 이벤트, 동작 및 트랜잭션 운영을 포함한 고급 기능은 복잡한 시나리오에 대한 기능과 적응성을 향상시킵니다. 이 자세한 탐구는 그 강점을 강조하고 잠재력을 최대한 활용하는 방법을 보여줍니다.위 내용은 Yii 2.0 Activerecord가 설명했습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!