porcelanosa/yii2-related

Yii2 Extenstion

dev-master 2017-12-04 20:31 UTC

This package is not auto-updated.

Last update: 2024-04-21 06:33:27 UTC


README

yii2-related

Yii2 extenstions - relate the similar entities Latest Stable Version Total Downloads

Install

composer require porcelanosa/yii2-related

Run migration

$ php yii migrate/up --migrationPath=@vendor/porcelanosa/yii2-related/migrations

Set Behavior

For model set Behavior

model_id_field_name - field name of primary key model_name_field_name - field name of Name model - for example, 'name' or 'title' post_name - POST attribute for send data

public function behaviors()
{
    return [
        'relatedBehavior' => [
            'class' => RelatedBehavior::className(),
            'model_name' => $this::className(),
            'model_id_field_name' => 'id', 
            'model_name_field_name' => 'name',
            'post_name' => 'related_objects',
            'whereCondition' => 'deleted!=1' // Conditions for list of related entities
        ],
    ......
    ]
}    

Use widget

In admin view:

echo \porcelanosa\yii2related\RelatedWidget::widget(
    [
        'model'        => $model,
        'model_name'   => $model::className(),
        'behaviorName' => 'relatedBehavior',
        'title'        => 'Похожие модели',
        'placeholder'  => 'Выберите похожие модели ...',
    ]
);

Usage

Get related models

<?
use yii\helpers\Html;
$brand = Brands::findOne(1);
foreach($brand->related as $rel) { 
    echo Html::a($rel->name, $rel->slug); 
    echo '<br>';
}
?>