總結
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 '';
}