gpt4 book ai didi

csv - 无法将数据csv导入yii2中的数据库

转载 作者:行者123 更新时间:2023-12-01 06:10:29 24 4
gpt4 key购买 nike

我对网络开发很陌生。

我是这里的新手,我在 stackoverflow 中的第一个问题..

我很困惑代码上有什么错误,代码会将数据数组 csv 存储到数据库中,
对不起,我的英语不好。

Controller

public function actionUpload()
{
$model = new Skt();
//error_reporting(E_ALL);
//ini_set('display_error', 1);

if ($model->load(Yii::$app->request->post())) {

$file = UploadedFile::getInstance($model, 'file');
$filename = 'Data.' . $file->extension;
$upload = $file->saveAs('uploads/' . $filename);

if ($upload) {

define('CSV_PATH', 'uploads/');
$csv_file = CSV_PATH . $filename;
$filecsv = file($csv_file);

foreach ($filecsv as $data) {
$modelnew = new Skt();
$hasil = explode(",", $data);
$no_surat= $hasil[0];
$posisi= $hasil[1];
$nama= $hasil[2];
$tgl_permanen= $hasil[3];
$grade= $hasil[4];
$tgl_surat= $hasil[5];
$from_date = $hasil[6];
$to_date = $hasil[7];
$modelnew->no_surat = $no_surat;
$modelnew->posisi = $posisi;
$modelnew->nama = $nama;
$modelnew->tgl_permanen = $tgl_permanen;
$modelnew->grade = $grade;
$modelnew->tgl_surat = $tgl_surat;
$modelnew->from_date = $from_date;
$modelnew->to_date = $to_date;
$modelnew->save();
//print_r($modelnew->validate());exit;

}
unlink('uploads/'.$filename);
return $this->redirect(['site/index']);
}
}else{
return $this->render('upload',['model'=>$model]);
}
return $this->redirect(['upload']);
}

型号
class Skt extends \yii\db\ActiveRecord
{
public static function tableName()
{
return 'skt';
}

public $file;

public function rules()
{
return [
[['file'], 'required'],
[['file'], 'file', 'extensions' => 'csv', 'maxSize' => 1024*1024*5],
[['no_surat'], 'required'],
[['tgl_surat', 'from_date', 'to_date'], 'string'],
[['no_surat', 'posisi', 'nama', 'tgl_permanen', 'grade'], 'string', 'max' => 255],
];
}
public function attributeLabels()
{
return [
'no_surat' => 'No Surat',
'posisi' => 'Posisi',
'nama' => 'Nama',
'tgl_permanen' => 'Tgl Permanen',
'grade' => 'Grade',
'tgl_surat' => 'Tgl Surat',
'from_date' => 'From Date',
'to_date' => 'To Date',
'file' => 'Select File'
];
}
}

谢谢你的帮助。。

最佳答案

将您的代码更改为以下内容以输出尝试保存时可能发生的错误。根据您的模型规则,可能会发生错误。

if (!$modelnew->save()) {
var_dump($modelnew->getErrors());
}

getErrors() from Api

更好的方法是使用异常在导入时抛出和捕获错误。取决于您是否想跳过错误的 csv 行。

关于csv - 无法将数据csv导入yii2中的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33273090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com