Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File Yii2-foreach循环以保存数据库模型中的所有文件路径_File_Foreach_Model_Path_Yii2 - Fatal编程技术网

File Yii2-foreach循环以保存数据库模型中的所有文件路径

File Yii2-foreach循环以保存数据库模型中的所有文件路径,file,foreach,model,path,yii2,File,Foreach,Model,Path,Yii2,您好 我在Yii2中使用多文件上传输入。 multiole文件输入可以很好地保存在名为audio的文件夹中选择的文件。 问题是我无法在foreach循环中将数据库模型Faixas.php中每个文件的名称和路径保存在名为Fichero的字段中 这是我的密码: 控制器: 模型作为一个名为upload的函数保存文件夹中的文件,但要保存在模型->ficheiro中的部分不起作用,您不明白吗?: 最后是呈现输入的视图: 有什么办法可以完成吗? 非常感谢 整个Faixas.php模型类: }您似乎在wrog

您好

我在Yii2中使用多文件上传输入。 multiole文件输入可以很好地保存在名为audio的文件夹中选择的文件。 问题是我无法在foreach循环中将数据库模型Faixas.php中每个文件的名称和路径保存在名为Fichero的字段中

这是我的密码:

控制器:

模型作为一个名为upload的函数保存文件夹中的文件,但要保存在模型->ficheiro中的部分不起作用,您不明白吗?:

最后是呈现输入的视图:

有什么办法可以完成吗? 非常感谢

整个Faixas.php模型类:


}

您似乎在wrog place中创建了模型。创建一个$model=newfaixas;使用循环。尝试在内部创建

public function upload()
{   

  if ($this->validate()) { 
    foreach ($this->files as $file) {
            $file->saveAs('audio/' . $file->baseName . '.' . $file->extension);

            $model = new Faixas(); 


            $filePath = 'audio/'  . $file->baseName . '.' . $file->extension;
            $model->ficheiro = $filePath;
            $model->save();
    }
    return true;
  } else {
    return false;
  }
}
解决了。。。已从模型文件中删除规则:

[['files'],'file','skipOnEmpty'=>false,'extensions'=>mp3、ogg、webm','maxFiles'=>30]

现在,foreach循环保存数据库中的每个文件路径


多亏了所有试图找到解决方案的人。

它没有奏效$型号->菲切罗继续为空:谢谢你的尝试。它在视野之上。只有2个主要功能。您需要查看所有文件吗?您提到的是数据库模型,我需要检查所有Faixas类模型,不仅是上载函数和规则。如果可以,请在分配后检查内容$model->ficheiro`$model->ficheiro=$filePath;`如果不为空,则问题可能出现在[['files']、'files'、……规则中。如果为空,则问题可能出现在创建操作中的文件分配中。我必须离开计算机,但稍后我会返回。非常感谢。
public function rules()
{
    return [
        [['nome', 'ficheiro', 'dummy1', 'dummy2', 'dummy3', 'dummy4', 'dummy5'], 'string', 'max' => 255],
        [['files'], 'file', 'skipOnEmpty' => false, 'extensions' => 'mp3, ogg, webm', 'maxFiles' => 30],
    ];
}

public function upload()
{   
    $model = new Faixas();
    if ($this->validate()) { 
        foreach ($this->files as $file) {
                $file->saveAs('audio/' . $file->baseName . '.' . $file->extension);

                // this part in not working, why ????
                $filePath = 'audio/'  . $file->baseName . '.' . $file->extension;
                $model->ficheiro = $filePath;
                $model->save();
    }
        return true;
    } else {
        return false;
    }
}
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>

<?= $form->field($model, 'files[]')->fileInput(['multiple' => true, 'accept' => 'audio/*']) ?>

<button>Submit</button>
   <?php

namespace app\models;

use Yii;

/**
* This is the model class for table "faixas".
*
* @property integer $id
* @property string $nome
* @property string $ficheiro
* @property string $dummy1
* @property string $dummy2
* @property string $dummy3
* @property string $dummy4
* @property string $dummy5
*/
class Faixas extends \yii\db\ActiveRecord
{
  /**
   * @inheritdoc
   */
 public static function tableName()
{
    return 'faixas';
}

public $files;

/**
 * @inheritdoc
 */
public function rules()
{
    return [
        [['nome', 'ficheiro', 'dummy1', 'dummy2', 'dummy3', 'dummy4', 'dummy5'], 'string', 'max' => 255],
        [['files'], 'file', 'skipOnEmpty' => false, 'extensions' => 'mp3, ogg, webm', 'maxFiles' => 30],
    ];
}

public function upload()
{   

    if ($this->validate()) { 
        foreach ($this->files as $file) {
                $file->saveAs('audio/' . $file->baseName . '.' . $file->extension);
                $model = new Faixas();
                // this part in not working, why ????
                $filePath = 'audio/'  . $file->baseName . '.' . $file->extension;
                $model->ficheiro = $filePath;
                $model->save();
    }
        return true;
    } else {
        return false;
    }
}

/**
 * @inheritdoc
 */
public function attributeLabels()
{
    return [
        'id' => Yii::t('app', 'ID'),
        'nome' => Yii::t('app', 'Nome'),
        'ficheiro' => Yii::t('app', 'Ficheiro'),
        'dummy1' => Yii::t('app', 'Dummy1'),
        'dummy2' => Yii::t('app', 'Dummy2'),
        'dummy3' => Yii::t('app', 'Dummy3'),
        'dummy4' => Yii::t('app', 'Dummy4'),
        'dummy5' => Yii::t('app', 'Dummy5'),
    ];
}

// coloca o Audio na GridView
public function getAudio()
{
    return \Yii::$app->request->BaseUrl.'/'.$this->ficheiro;
}
public function upload()
{   

  if ($this->validate()) { 
    foreach ($this->files as $file) {
            $file->saveAs('audio/' . $file->baseName . '.' . $file->extension);

            $model = new Faixas(); 


            $filePath = 'audio/'  . $file->baseName . '.' . $file->extension;
            $model->ficheiro = $filePath;
            $model->save();
    }
    return true;
  } else {
    return false;
  }
}