2

新しいテーブルを作成し、create コマンドを使用して値を挿入したいと考えています。これは私が試したコードです

if ( $model->save() )
            {
                $first_val      =   $model->num_start - 1;
                $connection     =   \Yii::$app()->db;
                $transaction    =   $connection->beginTransaction();
                try 
                {
                    $q =  "CREATE TABLE range_{$model->id}( id INT(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id) ); " ;      
                    $connection->createCommand($q)->execute(); // new table created
                    $transaction->commit();
                    if ( $model->num_start > 1 )
                    {
                        $r =  "INSERT INTO range_{$model->id}( id ) VALUES ({$first_val});" ;      
                        $connection->createCommand($r)->execute(); // new value inserted
                        $transaction->commit();
                    }

                } 
                catch (Exception $e) 
                {
                    // react on exception   
                    $transaction->rollback();
                } 

                return $this->redirect( [ 'index' ] );
}

このコードを実行しようとすると、エラーが発生Call to undefined method Yii::app()します。Yii2 で create コマンドを使用するにはどうすればよいですか?

4

1 に答える 1

1

との両方yiiを混合しましたyii2:

使用する:

\Yii::$app->db; 

それ以外の

\Yii::$app()->db;
于 2015-10-24T09:20:08.313 に答える