Yii2-relations
ΠΠΎΠ΄ΡΠ»Ρ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΏΠΎΡ
ΠΎΠΆΠΈΡ
ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²., (*1)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, (*2)
php composer require dvizh/yii2-relations "@dev"
ΠΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² composer.json, (*3)
"dvizh/yii2-relations": "@dev",
Π Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ, (*4)
php composer update
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ relations, (*5)
'modules' => [
//..
'relations' => [
'class' => 'dvizh\relations\Module',
'fields' => ['code'],
],
//..
]
*fields - ΠΌΠ°ΡΡΠΈΠ² Π΄ΠΎΠΏ. ΠΏΠΎΠ»Π΅ΠΉ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΠΎΠΊΠ½Π΅ Π²ΡΠ±ΠΎΡΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ id ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅), (*6)
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π‘Π²ΡΠ·ΠΈ Ρ
ΡΠ°Π½ΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΠ»Π΅ (TEXT) Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΠΎΠ»Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΡΠ΅Ρ \dvizh\relations\interfaces\Torelate ΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ AR, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:, (*7)
function behaviors()
{
return [
'relations' => [
'class' => 'dvizh\relations\behaviors\AttachRelations',
'relatedModel' => 'common\models\Product',
'inAttribute' => 'relations',
],
];
}
public function getName()
{
return $this->name;
}
public function getId()
{
return $this->id;
}
- inAttribute - Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π³Π΄Π΅ Π±ΡΠ΄ΡΡ Ρ
ΡΠ°Π½ΠΈΡΡΡΡ ΡΠ²ΡΠ·ΠΈ
- relatedModel - ΠΌΠΎΠ΄Π΅Π»Ρ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡ
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ $model->getRelations()->all()., (*8)
ΠΠΈΠ΄ΠΆΠ΅ΡΡ
ΠΡΠ±ΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ
ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Π²ΠΈΠ΄ΠΆΠ΅Ρ:, (*9)
<?=\dvizh\relations\widgets\Constructor::widget(['model' => $model]);?>
, (*10)
ΠΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·Π²Π°ΡΡ Π²Π½ΡΡΡΠΈ ΡΠΎΡΠΌΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ., (*11)