В 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. Если вы используете другой тип сущности файлов или формы, вам может потребоваться внести изменения в код в соответствии с вашими потребностями.
Важно также позаботиться о безопасности и валидации загружаемых файлов, чтобы предотвратить возможные атаки и некорректные данные.