yii2 總結

zhangsen發表於2019-06-27

總結

1-1Yii2 獲取模組名、控制器名、方法名 在檢視中:

模組名  $this->context->module->id
控制器名 $this->context->id
方法名 $this->context->action->id

在控制器中

 模組名   Yii::$app->controller->module->id;
 控制器名   Yii::$app->controller->id
 方法名  Yii::$app->controller->action->id; 

模組名 $this->module->id;
控制器名 $this->id;
方法名  $this->action->id;

在控制器的 beforeAction 方法中(方法接收$action引數)

模組名  $action->controller->module->id;
控制器名 $action->controller->id;
方法名  $action->id;

1-2 事務使用

$transaction = Yii::$app->db->beginTransaction();
    try{
        if(0){
            throw new Exception('操作失敗!');
        }

        $data  = Category::updateAll(['status'=>2],['id'=>15]);
        if($data){
            throw new Exception('操作失敗!');
        }

        //以上執行都成功,則對資料庫進行實際執行
        $transaction->commit();
        return true;
    }catch (Exception $e){
        $transaction->rollBack();
        return false;
    }

1-3 測試七牛上傳

    public function actionTest()
    {
        $img = UploadedFile::getInstanceByName('file');;
        $path = Yii::$app->controller->id;
        if(!empty($img)){
            $pathinfo = pathinfo($_FILES['file']['name']);
            $tempName = $_FILES['file']['tmp_name'];
            $ext = $pathinfo['extension'];
            $result =  uploadImage($path,$tempName,$ext);
            $imageSize = getimagesize($img->tempName);
            var_dump($imageSize);die;
        }

        return '';
    }