Как добавить несколько имён файлов в БД?

В Yii фреймворке для добавления нескольких имён файлов в базу данных вам понадобится создать модель, контроллер и представление.

Шаг 1: Создание модели

Создайте модель с помощью команды Gii или вручную. Назовите ее, например, FileModel. В этой модели объявите необходимые атрибуты, которые будут представлять данные файла, такие как имя, тип, путь и т.д.

В файле FileModel.php должны быть следующие строки:

class FileModel extends CActiveRecord
{
    public $file_name;
    public $file_type;
    public $file_path;
    ...
}

Шаг 2: Создание контроллера

Создайте контроллер, который будет обрабатывать операции с файлами. Назовите его, например, FileController. В этом контроллере создайте действие для добавления файлов в базу данных.

В файле FileController.php должно быть следующее действие:

public function actionAddFiles()
{
    $model = new FileModel();

    if(isset($_POST['FileModel']))
    {
        $model->attributes=$_POST['FileModel'];
        $model->file_name = $_FILES['FileModel']['name']['file'];
        $model->file_type = $_FILES['FileModel']['type']['file'];
        $model->file_path = 'путь_до_папки_с_файлами/' . $model->file_name;

        if($model->save())
        {
            // Файл успешно добавлен в базу данных
            // Вы также можете сохранить файл на сервере, используя move_uploaded_file()
        }
    }

    $this->render('addFiles',array('model'=>$model));
}

Шаг 3: Создание представления

Создайте представление, которое будет отображать форму для добавления файлов. Назовите его, например, addFiles.php. В этом представлении добавьте форму и использование элементов ActiveForm для загрузки файлов.

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'file-form',
    'htmlOptions'=>array('enctype'=>'multipart/form-data'),
)); ?>

    <div class="form-group">
        <?php echo $form->labelEx($model,'file'); ?>
        <?php echo $form->fileField($model,'file'); ?>
        <?php echo $form->error($model,'file'); ?>
    </div>

    <div class="form-group">
        <?php echo CHtml::submitButton('Добавить файл',array('class'=>'btn btn-primary')); ?>
    </div>

<?php $this->endWidget(); ?>

Когда вы отправите форму, данные будут отправлены в действие addFiles() в контроллере, где вы сможете сохранить информацию о файле в базу данных.

Примечание: В примере используется стандартный контроллер CActiveRecord и форма использует виджет CActiveForm. Если вы используете другой тип сущности файлов или формы, вам может потребоваться внести изменения в код в соответствии с вашими потребностями.

Важно также позаботиться о безопасности и валидации загружаемых файлов, чтобы предотвратить возможные атаки и некорректные данные.