Class yii\gii\controllers\DefaultController

Inheritanceyii\gii\controllers\DefaultController » yii\web\Controller
Available since extension's version2.0
Source Code https://github.com/yiisoft/yii2-gii/blob/master/src/controllers/DefaultController.php

Protected Methods

Hide inherited methods

Method Description Defined By
loadGenerator() Loads the generator with the specified ID. yii\gii\controllers\DefaultController

Property Details

Hide inherited properties

$generator public property
$layout public property
public $layout 'generator'
$module public property
public yii\gii\Module $module null

Method Details

Hide inherited methods

actionAction() public method

Runs an action defined in the generator.

Given an action named "xyz", the method "actionXyz()" in the generator will be called. If the method does not exist, a 400 HTTP exception will be thrown.

public actionAction( string $id, string $name ): mixed
$id string

The ID of the generator

$name string

The action name

return mixed

The result of the action.

throws \yii\web\NotFoundHttpException

if the action method does not exist.

                public function actionAction($id, $name)
{
    $generator = $this->loadGenerator($id);
    $method = 'action' . $name;
    if (method_exists($generator, $method)) {
        return $generator->$method();
    }
    throw new NotFoundHttpException("Unknown generator action: $name");
}

            
actionDiff() public method

public actionDiff( mixed $id, mixed $file ): mixed
$id mixed
$file mixed

                public function actionDiff($id, $file)
{
    $generator = $this->loadGenerator($id);
    if ($generator->validate()) {
        foreach ($generator->generate() as $f) {
            if ($f->id === $file) {
                return $this->renderPartial('diff', [
                    'diff' => $f->diff(),
                ]);
            }
        }
    }
    throw new NotFoundHttpException("Code file not found: $file");
}

            
actionIndex() public method

public actionIndex( ): mixed

                public function actionIndex()
{
    $this->layout = 'main';
    return $this->render('index');
}

            
actionPreview() public method

public actionPreview( mixed $id, mixed $file ): mixed
$id mixed
$file mixed

                public function actionPreview($id, $file)
{
    $generator = $this->loadGenerator($id);
    if ($generator->validate()) {
        foreach ($generator->generate() as $f) {
            if ($f->id === $file) {
                $content = $f->preview();
                if ($content !== false) {
                    return  '<div class="content">' . $content . '</div>';
                }
                return '<div class="error">Preview is not available for this file type.</div>';
            }
        }
    }
    throw new NotFoundHttpException("Code file not found: $file");
}

            
actionView() public method

public actionView( mixed $id ): mixed
$id mixed

                public function actionView($id)
{
    $generator = $this->loadGenerator($id);
    $params = ['generator' => $generator, 'id' => $id];
    $preview = Yii::$app->request->post('preview');
    $generate = Yii::$app->request->post('generate');
    $answers = Yii::$app->request->post('answers');
    if ($preview !== null || $generate !== null) {
        if ($generator->validate()) {
            $generator->saveStickyAttributes();
            $files = $generator->generate();
            if ($generate !== null && !empty($answers)) {
                $params['hasError'] = !$generator->save($files, (array) $answers, $results);
                $params['results'] = $results;
            } else {
                $params['files'] = $files;
                $params['answers'] = $answers;
            }
        }
    }
    return $this->render('view', $params);
}

            
beforeAction() public method

public beforeAction( mixed $action ):
$action mixed

                public function beforeAction($action)
{
    Yii::$app->response->format = Response::FORMAT_HTML;
    return parent::beforeAction($action);
}

            
loadGenerator() protected method

Loads the generator with the specified ID.

protected loadGenerator( string $id ): yii\gii\Generator
$id string

The ID of the generator to be loaded.

return yii\gii\Generator

The loaded generator

throws \yii\web\NotFoundHttpException

                protected function loadGenerator($id)
{
    if (isset($this->module->generators[$id])) {
        $this->generator = $this->module->generators[$id];
        $this->generator->loadStickyAttributes();
        $this->generator->load(Yii::$app->request->post());
        return $this->generator;
    }
    throw new NotFoundHttpException("Code generator not found: $id");
}