@yativ_sobb

Как в yii2 добавить запись в связанные таблицы таблицы?

Есть у меня три таблицы
категория shop shop_value
id id id
title id_value name
id_categor

Они связаны вот таким образом
id_categor->id(таблица категория )
id_value ->id(таблица shop_value)
нужно чтоб при добавления запись в таблицу shop_value зополнялось и shop
я пытался сделать их связать но видимо где то ошибка
model shop_value
<?php

namespace app\models;

use Yii;

/**
 * This is the model class for table "shopvalue".
 *
 * @property integer $id_shop_value
 * @property string $val
 * @property string $img
 * @property string $link
 *
 * @property Shop[] $shops
 */
class Shopvalue extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'shopvalue';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
		    [['shop_categor_list'], 'safe'],
            [['val', 'img', 'link'], 'required'],
            [['val', 'link'], 'string', 'max' => 500],
			[['img'], 'file', 'extensions'=>['jpg','png']],
			
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
		
            'id_shop_value' => 'Id Shop Value',
			
            'val' => 'Val',
            'img' => 'Img',
            'link' => 'Link',
        ];
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getShops()
    {
        return $this->hasMany(Shop::className(), ['id_shop_value' => 'id_shop_value'])->inverseOf('idShopValue');
    }

	
	
    public function getShopCategors()
    {
        $this->hasMany(ShopCategor::className(), ['id_categor' => 'id_shop_categor'])->viaTable('shop', ['id_shop_value' => 'id_shop_value']);
    }
   
    public function behaviors()
    {
    return
        [
            [
                'class' => \voskobovich\behaviors\ManyToManyBehavior::className(),
                'relations' => [
                    'shop_categor_list' => ['shop_categors'],
                  
                ]
            ]
        ];
    }
   
    public static function find()
    {
        return new ShopvalueQuery(get_called_class());
    }
}

и форма
<div class="shopvalue">

    <?php $form = ActiveForm::begin(['options'=>['enctype'=>'multipart/form-data']]); ?>


 <?= $form->field($model, 'val')->textInput() ?>
 
 <?= $form->field($model, 'id_shop_categor')->textInput() ?> -вот здесь ошибка
  
<?= $form->field($model, 'img')->widget(\kartik\file\FileInput::classname(),[
     'options'=>['accept'=>'image/*'],
      'pluginOptions'=>[
     //'uploadUrl'=>\Yii\helpers\Url::to(['file-image']),
     //'ulpoadExtraData'=>['id'=>1],
     'allowedFileExtensions'=>['jpg','png'],
    // 'initialPreview'=>$image,
     'ShowUpload'=>false,
     'ShowRemove'=>false, 
      'dropZoneEnabled'=>true     
     ] 
    ]); ?>
    
    <div class="form-group">
        <?= Html::submitButton ($model->isNewRecord ? 'Добавить' : 'Изменить',[ 'class'=>  'btn btn-success']) ?>
    </div>

    <?php ActiveForm::end(); ?>

</div>
  • Вопрос задан
  • 1520 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Можно использовать события в моделе, а именно beforesave и aftersave или же www.yiiframework.com/doc-2.0/guide-db-active-recor...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы