small_jedi
@small_jedi

Как сделать каждому checkbox свой input в Yii2?

Здравствуйте. Для интернет магазина пытаюсь сделать данную вещь26463cd0a92de6b122fb03576aa8ccb7.png html-ка выводится, но не получается свалидировать.
Модель
class AddGoodsForm extends Model{
    
    public $name;
    public $price;
    public $file;
    public $imageUrl;
    public $count;
    public $stores;
    public $count_stores;
    
    public $categoryId;
    
    public function rules(){
        return [
            [['name', 'price', 'count'], 'required', 'message'=>'Обязательно к заполнению'],
            
            [['price', 'categoryId', 'count', 'stores', 'count_stores'], 'integer'],
            
            ['file', 'file', 'extensions'=>'png, jpg']
        ];
    }
    public function save(){
        $self = new Products();
        $self->name = $this->name;
        $self->price = $this->price;
        $self->count = $this->count;
        $self->categoryId = $this->categoryId;
        $self->imageUrl = $this->imageUrl;
//        $self->save();
        
        var_dump($this->stores);
        var_dump($this->count_stores);
    }
}

Часть вьюшки, где вывожу форму
echo $form->field($model, 'stores')->label('Магазины')->checkboxList(\yii\helpers\ArrayHelper::map(\app\models\Store::find()->all(), 'id', 'name'),
    ['item' => 
        function($index, $label, $name, $checked, $value) {
            return "
                <table width=300>
                    <tr>
                        <td style='width:200px;'>".Html::checkbox('stores',  $checked, [
                                                'value' => $value,
                                                'label' => $label,
                                                'class' => 'any class',])."</td>
                    <td>
                    ".Html::input('text', 'count_stores')."
                    </td>
                    </tr>
                </table>
            ";
        }
    ]);
  • Вопрос задан
  • 1159 просмотров
Пригласить эксперта
Ответы на вопрос 2
qonand
@qonand
Software Engineer
Для построение такой штуки лучше использовать готовое расширение, например вот а не делать самому ...
Ответ написан
Isolution666
@Isolution666
Full-Stack Developer
Используйте "checkboxTemplate" - он тут больше к месту:
$checkboxTemplate = "<div class=\"checkbox\">\n{beginLabel}\n{input}\n{labelTitle}\n{endLabel}\n{error}\n{hint}\n</div>"


<?= $form->field($model, 'email', $checkboxTemplate)->textInput();?>


www.yiiframework.com/doc-2.0/yii-bootstrap-activef...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы