Not work
des1roer opened this issue · comments
model
<?php
namespace app\modules\lesson\models;
use Yii;
/**
* This is the model class for table "worker".
*
* @property integer $id
* @property string $name
* @property integer $dep_id
* @property string $img
*
* @property Dep $dep
* @property WorkerHasPerk[] $workerHasPerks
*/
class Worker extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'worker';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['name', 'dep_id'], 'required'],
[['name', 'img'], 'string'],
[['dep_id'], 'integer']
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'name' => 'Name',
'dep_id' => 'Dep ID',
'img' => 'Img',
[['perks_list'], 'safe'],
];
}
public function getMyperks()
{
$perks = $this->perks;
for($i = 0; $i <= count($perks); $i++)
{
if (!empty($perks[$i]['name']))
$perk[] = Html::a($perks[$i]['name'], ['/lesson/perk/view', 'id' => $perks[$i]['id'],], ['class' => 'btn btn-link']);
}
return ($perk) ? implode($perk) : '';
}
public function getPerks()
{
return $this->hasMany(Perk::className(), ['id' => 'perk_id'])
->viaTable('worker_has_perk', ['worker_id' => 'id']);
}
public function formName()
{
return '';
}
/**
* @return \yii\db\ActiveQuery
*/
public function getDep()
{
return $this->hasOne(Dep::className(), ['id' => 'dep_id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getWorkerHasPerks()
{
return $this->hasMany(WorkerHasPerk::className(), ['worker_id' => 'id']);
}
/**
* @inheritdoc
* @return WorkerQuery the active query used by this AR class.
*/
public static function find()
{
return new WorkerQuery(get_called_class());
}
public function behaviors()
{
return [
[
'class' => \voskobovich\behaviors\ManyToManyBehavior::className(),
'relations' => [
'perks_list' => 'perks',
],
],
];
}
}
_form
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\ArrayHelper;
use app\modules\lesson\models\Dep;
use app\modules\lesson\models\Perk;
/* @var $this yii\web\View */
/* @var $model app\modules\lesson\models\Worker */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="worker-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'name')->textarea(['rows' => 6]) ?>
<?= $form->field($model, 'dep_id')->dropDownList(ArrayHelper::map(Dep::find()->all(), 'id', 'name')) ?>
<?= $form->field($model, 'perks_list')
->dropDownList(ArrayHelper::map(Perk::find()->all(), 'id', 'name'), ['multiple' => true])
?>
<?= $form->field($model, 'img')->textarea(['rows' => 6]) ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
public function rules()
{
return [
[['name', 'dep_id'], 'required'],
[['name', 'img'], 'string'],
[['dep_id'], 'integer'],
[['perks_list'], 'safe'],
];
}