Ответы пользователя по тегу Yii
  • Можна как то добавить List-Unsubscribe в yii2?

    @Ghost2692 Автор вопроса
    $headers->addHeader('List-Unsubscribe', '<'.$unsubscribeLink.'>');
    Больше на www.yiiframework.com/doc-2.0/yii-swiftmailer-messa...
    Ответ написан
    Комментировать
  • Не совершает вывод ошибки для валидации в Yii2?

    @Ghost2692 Автор вопроса
    Нашел решение, для сообщения ошибки когда есть 'min' => 4, 'tooShort' => "message error" выводит ошибку, а не 'message', ну и для 'max' => 50 то 'tooLong' => "message error".
    Ответ написан
    Комментировать
  • Почему файл с .csv не проходит валидацию в Yii2?

    @Ghost2692 Автор вопроса
    Форма:
    <?php $form = ActiveForm::begin(['method' => 'post', 'id' => 'add-contacts-file', 'options' => ['class' => 'mt-2 mb-2 col-lg-4 col-xs-3', 'enctype' => 'multipart/form-data'] ]); ?>
    
                                <div class="custom-file">
                                    <?= $form->field($addFileContact, 'contact_file')->fileInput(['class' => 'custom-file-input'])->label(Yii::t('app', 'Choose file'), ['class' => 'custom-file-label', 'for' => 'customFile']);
                                    ?>
    
                                    <div style="margin-top: -15px"><?= Yii::t('app', 'File type should be .csv') ?></div>
    
                                </div>
    
                                <?= Html::submitButton(Yii::t('app', 'Add contacts'), ['class' => 'mt-2 btn btn-sm button-success', 'form' => 'add-contacts-file']) ?>
    
                                <?php ActiveForm::end(); ?>


    file csv

    Повна модель
    /**
         * @var UploadedFile
         */
        public $contact_file;
    
        public function rules()
        {
            return [
                ['contact_file', 'file', 'skipOnEmpty' => false, 'extensions' => 'csv'],
            ];
        }
    
        /**
         * @inheritdoc
         */
        public function attributeLabels()
        {
            return [
                'contact_file' => 'Contact file',
            ];
        }
    
        public function uploadContacts()
        {
            if ($this->validate()) {
                $this->contact_file->saveAs('uploads/contacts/' . $this->contact_file->baseName . '.' . $this->contact_file->extension);
                return true;
            } else {
                return false;
            }
        }
    Ответ написан
  • Можно сделать что-то похожее в панель управлении?

    @Ghost2692 Автор вопроса
    Меня не интересует верстка, а интересует форма отправки чекбоксах вместе с выбором определенного действия для выбранных чекбоксов как переместить, копировать, и другие.
    $changeOnUnsubscribed = new ContactList();
            if ($changeOnUnsubscribed->load(Yii::$app->request->post())) {
                $contactId = ContactList::find()->where(['contact_id' => $id])->all();
                foreach ($contactId as $id) {
                    $count = count($changeOnUnsubscribed->selected_checkbox);
                    for ($i = 1; $i < $count; $i++) {
                        $item = $changeOnUnsubscribed->selected_checkbox[$i];
                        if ($item != 0) {
                            if ($item == $id->id) {
                                $ids = ContactList::findOne($id->id);
                                $ids->status = 0;
                                $ids->save(false);
                            }
                        }
                    }
                }
            }
    
    //        delete all selected contact
            $deleteContacts = new ContactList();
            if ($deleteContacts->load(Yii::$app->request->post())) {
                $contactId = ContactList::find()->where(['contact_id' => $id])->all();
                foreach ($contactId as $id) {
                    $count = count($deleteContacts->selected_checkbox);
                    for ($i = 1; $i < $count; $i++) {
                        $item = $deleteContacts->selected_checkbox[$i];
                        if ($item != 0) {
                            if ($item == $id->id) {
                                $ids = ContactList::findOne($id->id);
                                $ids->delete();
                            }
                        }
                    }
                }
            }

    первый меняет статус на 0 а второй удаляет запись
    <?php if ($contactList) { ?>
                        <?php $form = ActiveForm::begin([
                            'method' => 'post',
                            'id' => 'checkbox-contact',
                            'options' => ['class' => 'form-inline']
                        ]); ?>
                        <?php foreach ($contactList as $contact): ?>
                            <tr>
                                <td>
                                    <?= $form->field($selectContact, 'selected_checkbox[]')->checkbox(['id' => $contact->id, 'class' => 'checkbox-contact-list form-check-input position-static', 'value' => $contact->id, 'label' => null]) ?>
                                </td>
     <?php endforeach; ?>
    //modal window
    $items = ArrayHelper::map($groupContactList,'id','name_group');
    $params = [ 'prompt' => Yii::t('app', 'Choose...') ];
    echo $form->field($selectContact, 'group')->dropDownList($items,$params)->label(Yii::t('app', 'Select a group') . ':', ['class' => 'col-form-label']);

    проблема в том что есть одна форма, и много модальных окон (копировать, переместить и другие) для отправки данных в соответствии отправляются все данные удалить или переместить а выполняется только останий код.
    Как я понимаю в php можно отправить только одну форму а не 2 или больше.
    Ответ написан