yii2 $this->setAttributes()的用法

我是做图片上传的时候遇到的这个方法,二开。图片上传后数据都得到了,但是就是没有入库。

    yii2 中 $this->setAttributes($data)

$data里面的数据必须要在模型里面的rules验证,否则就会出现数据入不了库的情况。

图片上传代码:

$model = new Device();
$post = Yii::$app->request->post();
if ($post) {
    $post['image'] = "";
    $fileObj = UploadedFile::getInstanceByName('imgFile');
    //var_dump($fileObj);exit;
    if ($fileObj) {
        //拼路径
        $imgFilePath = "img/" . uniqid() . '.' . $fileObj->extension;
        //var_dump($imgFilePath);exit;
        if ($fileObj->saveAs($imgFilePath)) {
            $post['image'] = $imgFilePath;
        }
    }
    $insert = $model->insertData($post);

模型代码:

public function insertData($data)
    {
//这里的代码是其它数据,不是图片的,$data里面有图片数据
$time = date ( 'Y-m-d H:i:s' , time ()); $data [ 'status' ] = 1 ; $data [ 'created_time' ] = $time ; $data [ 'updated_time' ] = $time ; if ( isset ( $data [ '_csrf' ])){ unset ( $data [ '_csrf' ]); } $this ->setAttributes( $data ); $result = $this ->save(); // $result = Yii::$app->db->createCommand()->insert('device', $data)->execute(); if ( $result ) { return $this -> attributes [ 'id' ]; } return false ; }

你可能感兴趣的:(项目中的问题)