1 follower

Class yii\rest\ActiveController

継承yii\rest\ActiveController » yii\rest\Controller » yii\web\Controller » yii\base\Controller » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurable, yii\base\ViewContextInterface
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/rest/ActiveController.php

ActiveController は、ActiveRecord への RESTful アクセスをサポートするための共通アクションセットを実装します。

ActiveRecord のクラスは、$modelClass を介して指定する必要があります。これは、yii\db\ActiveRecordInterface を実装する必要があります。デフォルトでは、次のアクションがサポートされています。

  • index:モデルのリスト
  • view:モデルの詳細を返す
  • create:新しいモデルを作成する
  • update:既存のモデルを更新する
  • delete:既存のモデルを削除する
  • options:許可されている HTTP メソッドを返す

actions() をオーバーライドし、対応するアクションを unset することで、これらのアクションの一部を無効にすることができます。

新しいアクションを追加するには、actions() をオーバーライドして新しいアクションクラスを追加するか、新しいアクションメソッドを作成します。新しいアクションで許可される HTTP メソッドを適切に宣言するために、verbs() もオーバーライドしてください。

通常、現在のユーザーが指定されたモデルに対して指定されたアクションを実行する権限を持っているかどうかを確認するために、checkAccess() をオーバーライドする必要があります。

ActiveController の詳細と使用方法については、REST コントローラーに関するガイド記事を参照してください。

公開プロパティ

継承されたプロパティを非表示

プロパティ 説明 定義元
$action yii\base\Action|null 現在実行中のアクション。 yii\base\Controller
$actionParams array 現在のアクションにバインドされたパラメーター。 yii\web\Controller
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$createScenario string モデルの作成に使用されるシナリオ。 yii\rest\ActiveController
$defaultAction string リクエストでアクション ID が指定されていない場合に使用されるアクションの ID。 yii\base\Controller
$enableCsrfValidation boolean このコントローラーのアクションに対して CSRF 検証を有効にするかどうか。 yii\rest\Controller
$id string このコントローラーの ID。 yii\base\Controller
$layout string|null|false このコントローラーのビューに適用されるレイアウトの名前。 yii\base\Controller
$modelClass string モデルクラス名。 yii\rest\ActiveController
$module yii\base\Module このコントローラーが属するモジュール。 yii\base\Controller
$modules yii\base\Module[] このコントローラーが配置されているすべての上位モジュール。 yii\base\Controller
$request yii\base\Request|array|string リクエスト。 yii\base\Controller
$response yii\base\Response|array|string レスポンス。 yii\base\Controller
$route string 現在のリクエストのルート(モジュール ID、コントローラー ID、アクション ID)。 yii\base\Controller
$serializer string|array レスポンスデータをフォーマットするシリアライザーを作成するための構成。 yii\rest\Controller
$uniqueId string モジュール ID(存在する場合)がプレフィックスとして付加されたコントローラー ID。 yii\base\Controller
$updateScenario string モデルの更新に使用されるシナリオ。 yii\rest\ActiveController
$view yii\base\View|yii\web\View ビューまたはビューファイルをレンダリングするために使用できるビューオブジェクト。 yii\base\Controller
$viewPath string このコントローラーのビューファイルを含むディレクトリ。 yii\base\Controller

公開メソッド

継承されたメソッドを非表示

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\Component
__clone() このメソッドは、オブジェクトが既存のオブジェクトをクローンすることによって作成された後に呼び出されます。 yii\base\Component
__construct() yii\base\Controller
__get() コンポーネントプロパティの値を返します。 yii\base\Component
__isset() プロパティが設定されているかどうか、つまり定義されており、null でないかどうかを確認します。 yii\base\Component
__set() コンポーネントプロパティの値を設定します。 yii\base\Component
__unset() コンポーネントプロパティを null に設定します。 yii\base\Component
actions() コントローラーの外部アクションを宣言します。 yii\rest\ActiveController
afterAction() このメソッドは、アクションが実行された直後に呼び出されます。 yii\rest\Controller
asJson() JSON としてフォーマットされたデータを送信します。 yii\web\Controller
asXml() XML としてフォーマットされたデータを送信します。 yii\web\Controller
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
beforeAction() このメソッドは、アクションが実行される直前に呼び出されます。 yii\web\Controller
behaviors() このコンポーネントが振る舞うべきビヘイビアのリストを返します。 yii\rest\Controller
bindActionParams() パラメーターをアクションにバインドします。 yii\web\Controller
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
checkAccess() 現在のユーザーの権限を確認します。 yii\rest\ActiveController
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
createAction() 指定されたアクション ID に基づいてアクションを作成します。 yii\base\Controller
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
ensureBehaviors() behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
findLayoutFile() 適用可能なレイアウトファイルを探します。 yii\base\Controller
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされたすべてのビヘイビアを返します。 yii\base\Component
getModules() このコントローラーのすべての祖先モジュールを返します。 yii\base\Controller
getRoute() 現在のリクエストのルートを返します。 yii\base\Controller
getUniqueId() コントローラーの一意のIDを返します。 yii\base\Controller
getView() ビューまたはビューファイルのレンダリングに使用できるビューオブジェクトを返します。 yii\base\Controller
getViewPath() このコントローラーのビューファイルを含むディレクトリを返します。 yii\base\Controller
goBack() ブラウザを最後に訪れたページにリダイレクトします。 yii\web\Controller
goHome() ブラウザをホームページにリダイレクトします。 yii\web\Controller
hasEventHandlers() 指定された名前のイベントにハンドラーがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() オブジェクトを初期化します。 yii\rest\ActiveController
off() 既存のイベントハンドラーをこのコンポーネントからデタッチします。 yii\base\Component
on() イベントにイベントハンドラーをアタッチします。 yii\base\Component
redirect() ブラウザを指定されたURLにリダイレクトします。 yii\web\Controller
refresh() 現在のページをリフレッシュします。 yii\web\Controller
render() ビューをレンダリングし、利用可能な場合はレイアウトを適用します。 yii\base\Controller
renderAjax() AJAXリクエストに応答してビューをレンダリングします。 yii\web\Controller
renderContent() レイアウトを適用して静的な文字列をレンダリングします。 yii\base\Controller
renderFile() ビューファイルをレンダリングします。 yii\base\Controller
renderPartial() レイアウトを適用せずにビューをレンダリングします。 yii\base\Controller
run() ルートで指定されたリクエストを実行します。 yii\base\Controller
runAction() このコントローラー内で、指定されたアクションIDとパラメーターを使用してアクションを実行します。 yii\base\Controller
setView() このコントローラーで使用されるビューオブジェクトを設定します。 yii\base\Controller
setViewPath() ビューファイルを含むディレクトリを設定します。 yii\base\Controller
trigger() イベントをトリガーします。 yii\base\Component

保護されたメソッド

継承されたメソッドを非表示

メソッド 説明 定義元
bindInjectedParams() アクションメソッドのシグネチャ内の型と名前に基づいてパラメーターを設定します。 yii\base\Controller
serializeData() 指定されたデータをシリアライズします。 yii\rest\Controller
verbs() 許可されたHTTP動詞を宣言します。 yii\rest\ActiveController

イベント

継承されたイベントを非表示にする

イベント 説明 定義元
EVENT_AFTER_ACTION yii\base\ActionEvent コントローラーアクションの実行直後に発生するイベント。 yii\base\Controller
EVENT_BEFORE_ACTION yii\base\ActionEvent コントローラーアクションの実行直前に発生するイベント。 yii\base\Controller

プロパティの詳細

継承されたプロパティを非表示

$createScenario public property

モデルの作成に使用されるシナリオ。

yii\base\Model::scenarios()も参照してください。

public string $createScenario = \yii\base\Model::SCENARIO_DEFAULT
$modelClass public property

モデルのクラス名。このプロパティは設定する必要があります。

public string $modelClass null
$updateScenario public property

モデルの更新に使用されるシナリオ。

yii\base\Model::scenarios()も参照してください。

public string $updateScenario = \yii\base\Model::SCENARIO_DEFAULT

メソッドの詳細

継承されたメソッドを非表示

__call() public method

定義元: yii\base\Component::__call()

クラスメソッドではない名前付きメソッドを呼び出します。

このメソッドは、アタッチされたビヘイビアに指定された名前のメソッドがあるかどうかを確認し、存在する場合は実行します。

不明なメソッドが呼び出されたときに暗黙的に呼び出されるPHPのマジックメソッドであるため、このメソッドを直接呼び出さないでください。

public mixed __call ( $name, $params )
$name string

メソッド名

$params array

メソッドのパラメーター

return mixed

メソッドの戻り値

throws yii\base\UnknownMethodException

不明なメソッドを呼び出すとき

                public function __call($name, $params)
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $object) {
        if ($object->hasMethod($name)) {
            return call_user_func_array([$object, $name], $params);
        }
    }
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__clone() public method

定義元: yii\base\Component::__clone()

このメソッドは、オブジェクトが既存のオブジェクトをクローンすることによって作成された後に呼び出されます。

すべてのビヘイビアは古いオブジェクトにアタッチされているため、削除します。

public void __clone ( )

                public function __clone()
{
    $this->_events = [];
    $this->_eventWildcards = [];
    $this->_behaviors = null;
}

            
__construct() public method
public void __construct ( $id, $module, $config = [] )
$id string

このコントローラーの ID。

$module yii\base\Module

このコントローラーが属するモジュール。

$config array

オブジェクトのプロパティを初期化するために使用される名前と値のペア。

                public function __construct($id, $module, $config = [])
{
    $this->id = $id;
    $this->module = $module;
    parent::__construct($config);
}

            
__get() public method

定義元: yii\base\Component::__get()

コンポーネントプロパティの値を返します。

このメソッドは、次の順序でチェックし、それに応じて動作します。

  • ゲッターによって定義されたプロパティ: ゲッターの結果を返します。
  • ビヘイビアのプロパティ: ビヘイビアのプロパティ値を返します。

$value = $component->property; の実行時に暗黙的に呼び出されるPHPのマジックメソッドであるため、このメソッドを直接呼び出さないでください。

__set() も参照してください。

public mixed __get ( $name )
$name string

プロパティ名

return mixed

プロパティ値またはビヘイビアのプロパティの値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが書き込み専用の場合。

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        // read property, e.g. getName()
        return $this->$getter();
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name;
        }
    }
    if (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() public method

定義元: yii\base\Component::__isset()

プロパティが設定されているかどうか、つまり定義されており、null でないかどうかを確認します。

このメソッドは、次の順序でチェックし、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティが設定されているかどうかを返します。
  • ビヘイビアのプロパティ: プロパティが設定されているかどうかを返します。
  • 存在しないプロパティに対してはfalseを返します。

isset($component->property) の実行時に暗黙的に呼び出されるPHPのマジックメソッドであるため、このメソッドを直接呼び出さないでください。

https://www.php.net/manual/en/function.isset.php も参照してください。

public boolean __isset ( $name )
$name string

プロパティ名またはイベント名

return boolean

指定されたプロパティが設定されているかどうか

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name !== null;
        }
    }
    return false;
}

            
__set() public method

定義元: yii\base\Component::__set()

コンポーネントプロパティの値を設定します。

このメソッドは、次の順序でチェックし、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティ値を設定します。
  • 「on xyz」の形式のイベント: イベント「xyz」にハンドラーをアタッチします。
  • 「as xyz」の形式のビヘイビア: 「xyz」という名前のビヘイビアをアタッチします。
  • ビヘイビアのプロパティ: ビヘイビアのプロパティ値を設定します。

$component->property = $value; の実行時に暗黙的に呼び出されるPHPのマジックメソッドであるため、このメソッドを直接呼び出さないでください。

__get() も参照してください。

public void __set ( $name, $value )
$name string

プロパティ名またはイベント名

$value mixed

プロパティの値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        // set property
        $this->$setter($value);
        return;
    } elseif (strncmp($name, 'on ', 3) === 0) {
        // on event: attach event handler
        $this->on(trim(substr($name, 3)), $value);
        return;
    } elseif (strncmp($name, 'as ', 3) === 0) {
        // as behavior: attach behavior
        $name = trim(substr($name, 3));
        $this->attachBehavior($name, $value instanceof Behavior ? $value : Yii::createObject($value));
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = $value;
            return;
        }
    }
    if (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
}

            
__unset() public メソッド

定義場所: yii\base\Component::__unset()

コンポーネントプロパティを null に設定します。

このメソッドは、次の順序でチェックし、それに応じて動作します。

  • setterによって定義されたプロパティ: プロパティ値を null に設定
  • ビヘイビアのプロパティ: プロパティ値を null に設定

このメソッドは、`unset($component->property)` を実行したときに暗黙的に呼び出される PHP のマジックメソッドであるため、直接呼び出さないでください。

以下も参照してください https://www.php.net/manual/en/function.unset.php

public void __unset ( $name )
$name string

プロパティ名

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = null;
            return;
        }
    }
    throw new InvalidCallException('Unsetting an unknown or read-only property: ' . get_class($this) . '::' . $name);
}

            
actions() public メソッド

コントローラーの外部アクションを宣言します。

このメソッドは、コントローラーの外部アクションを宣言するためにオーバーライドされることを意図しています。アクション ID を配列キーとし、対応するアクションクラス名またはアクション設定配列を配列値とする配列を返す必要があります。例えば、

return [
    'action1' => 'app\components\Action1',
    'action2' => [
        'class' => 'app\components\Action2',
        'property1' => 'value1',
        'property2' => 'value2',
    ],
];

Yii::createObject() は、ここで提供された設定を使用して、リクエストされたアクションを作成するために後で使用されます。

public array actions ( )

                public function actions()
{
    return [
        'index' => [
            'class' => 'yii\rest\IndexAction',
            'modelClass' => $this->modelClass,
            'checkAccess' => [$this, 'checkAccess'],
        ],
        'view' => [
            'class' => 'yii\rest\ViewAction',
            'modelClass' => $this->modelClass,
            'checkAccess' => [$this, 'checkAccess'],
        ],
        'create' => [
            'class' => 'yii\rest\CreateAction',
            'modelClass' => $this->modelClass,
            'checkAccess' => [$this, 'checkAccess'],
            'scenario' => $this->createScenario,
        ],
        'update' => [
            'class' => 'yii\rest\UpdateAction',
            'modelClass' => $this->modelClass,
            'checkAccess' => [$this, 'checkAccess'],
            'scenario' => $this->updateScenario,
        ],
        'delete' => [
            'class' => 'yii\rest\DeleteAction',
            'modelClass' => $this->modelClass,
            'checkAccess' => [$this, 'checkAccess'],
        ],
        'options' => [
            'class' => 'yii\rest\OptionsAction',
        ],
    ];
}

            
afterAction() public メソッド

定義場所: yii\rest\Controller::afterAction()

このメソッドは、アクションが実行された直後に呼び出されます。

このメソッドは、EVENT_AFTER_ACTION イベントをトリガーします。このメソッドの戻り値は、アクションの戻り値として使用されます。

このメソッドをオーバーライドする場合は、以下のようになるようにコードを記述する必要があります。

public function afterAction($action, $result)
{
    $result = parent::afterAction($action, $result);
    // your custom code here
    return $result;
}
public mixed afterAction ( $action, $result )
$action yii\base\Action

実行されたアクション。

$result mixed

アクションの戻り結果。

return mixed

処理されたアクション結果。

                public function afterAction($action, $result)
{
    $result = parent::afterAction($action, $result);
    return $this->serializeData($result);
}

            
asJson() public メソッド (バージョン 2.0.11 以降で利用可能)

定義場所: yii\web\Controller::asJson()

JSON としてフォーマットされたデータを送信します。

このメソッドは、JSON としてフォーマットされたデータを送信するためのショートカットです。このメソッドは、フォーマットを設定し、フォーマットされるべきデータを設定した後、response アプリケーションコンポーネントを返します。一般的な使い方は次のとおりです。

return $this->asJson($data);

以下も参照してください

public yii\web\Response asJson ( $data )
$data mixed

フォーマットされるべきデータ。

return yii\web\Response

JSONとしてフォーマットされた$dataを送信するように設定されたレスポンス。

                public function asJson($data)
{
    $this->response->format = Response::FORMAT_JSON;
    $this->response->data = $data;
    return $this->response;
}

            
asXml() public メソッド (バージョン 2.0.11 以降で利用可能)

定義場所: yii\web\Controller::asXml()

XML としてフォーマットされたデータを送信します。

このメソッドは、XML としてフォーマットされたデータを送信するためのショートカットです。このメソッドは、フォーマットを設定し、フォーマットされるべきデータを設定した後、response アプリケーションコンポーネントを返します。一般的な使い方は次のとおりです。

return $this->asXml($data);

以下も参照してください

public yii\web\Response asXml ( $data )
$data mixed

フォーマットされるべきデータ。

return yii\web\Response

XMLとしてフォーマットされた$dataを送信するように設定されたレスポンス。

                public function asXml($data)
{
    $this->response->format = Response::FORMAT_XML;
    $this->response->data = $data;
    return $this->response;
}

            
attachBehavior() public メソッド

定義場所: yii\base\Component::attachBehavior()

このコンポーネントにビヘイビアをアタッチします。

このメソッドは、与えられた設定に基づいてビヘイビアオブジェクトを作成します。その後、yii\base\Behavior::attach() メソッドを呼び出すことによって、ビヘイビアオブジェクトがこのコンポーネントにアタッチされます。

以下も参照してください detachBehavior()

public yii\base\Behavior attachBehavior ( $name, $behavior )
$name string

ビヘイビアの名前。

$behavior string|array|yii\base\Behavior

ビヘイビアの設定。これは次のいずれかになります。

  • yii\base\Behavior オブジェクト
  • ビヘイビアクラスを指定する文字列
  • Yii::createObject() に渡してビヘイビアオブジェクトを作成するオブジェクト設定配列。
return yii\base\Behavior

ビヘイビアオブジェクト

                public function attachBehavior($name, $behavior)
{
    $this->ensureBehaviors();
    return $this->attachBehaviorInternal($name, $behavior);
}

            
attachBehaviors() public メソッド

定義場所: yii\base\Component::attachBehaviors()

コンポーネントにビヘイビアのリストをアタッチします。

各ビヘイビアは名前でインデックス付けされ、yii\base\Behavior オブジェクト、ビヘイビアクラスを指定する文字列、またはビヘイビアを作成するための設定配列である必要があります。

以下も参照してください attachBehavior()

public void attachBehaviors ( $behaviors )
$behaviors array

コンポーネントにアタッチされるビヘイビアのリスト

                public function attachBehaviors($behaviors)
{
    $this->ensureBehaviors();
    foreach ($behaviors as $name => $behavior) {
        $this->attachBehaviorInternal($name, $behavior);
    }
}

            
beforeAction() public メソッド

定義場所: yii\web\Controller::beforeAction()

このメソッドは、アクションが実行される直前に呼び出されます。

このメソッドは、EVENT_BEFORE_ACTION イベントをトリガーします。このメソッドの戻り値は、アクションの実行を継続するかどうかを決定します。

アクションを実行しない場合、必要な出力を提供するか、リクエストをリダイレクトすることで、`beforeAction` コード内でリクエストを処理する必要があります。それ以外の場合、レスポンスは空になります。

このメソッドをオーバーライドする場合は、以下のようになるようにコードを記述する必要があります。

public function beforeAction($action)
{
    // your custom code here, if you want the code to run before action filters,
    // which are triggered on the [[EVENT_BEFORE_ACTION]] event, e.g. PageCache or AccessControl

    if (!parent::beforeAction($action)) {
        return false;
    }

    // other custom code here

    return true; // or false to not run the action
}
public boolean beforeAction ( $action )
$action yii\base\Action

実行されるアクション。

return boolean

アクションを続行する必要があるかどうか。

                public function beforeAction($action)
{
    if (parent::beforeAction($action)) {
        if ($this->enableCsrfValidation && Yii::$app->getErrorHandler()->exception === null && !$this->request->validateCsrfToken()) {
            throw new BadRequestHttpException(Yii::t('yii', 'Unable to verify your data submission.'));
        }
        return true;
    }
    return false;
}

            
behaviors() public メソッド

定義場所: yii\rest\Controller::behaviors()

このコンポーネントが振る舞うべきビヘイビアのリストを返します。

子クラスは、動作させたいビヘイビアを指定するために、このメソッドをオーバーライドする場合があります。

このメソッドの戻り値は、ビヘイビア名でインデックスされたビヘイビアオブジェクトまたは構成の配列である必要があります。ビヘイビア構成は、ビヘイビアクラスを指定する文字列、または以下の構造の配列のいずれかになります。

'behaviorName' => [
    'class' => 'BehaviorClass',
    'property1' => 'value1',
    'property2' => 'value2',
]

ビヘイビアクラスは、yii\base\Behaviorを継承する必要があることに注意してください。ビヘイビアは、名前付きまたは匿名でアタッチできます。配列のキーとして名前が使用されている場合、この名前を使用して、後でgetBehavior()を使用してビヘイビアを取得したり、detachBehavior()を使用してデタッチしたりできます。匿名ビヘイビアは、取得またはデタッチできません。

このメソッドで宣言されたビヘイビアは、(要求に応じて)コンポーネントに自動的にアタッチされます。

public array behaviors ( )
return array

ビヘイビア構成。

                public function behaviors()
{
    return [
        'contentNegotiator' => [
            'class' => ContentNegotiator::className(),
            'formats' => [
                'application/json' => Response::FORMAT_JSON,
                'application/xml' => Response::FORMAT_XML,
            ],
        ],
        'verbFilter' => [
            'class' => VerbFilter::className(),
            'actions' => $this->verbs(),
        ],
        'authenticator' => [
            'class' => CompositeAuth::className(),
        ],
        'rateLimiter' => [
            'class' => RateLimiter::className(),
        ],
    ];
}

            
bindActionParams() public method

定義元: yii\web\Controller::bindActionParams()

パラメーターをアクションにバインドします。

このメソッドは、yii\base\Actionが指定されたパラメーターで実行を開始するときに呼び出されます。このメソッドは、アクションが必要とするパラメーター名をチェックし、要件に従って提供されたパラメーターを返します。不足しているパラメーターがある場合は、例外がスローされます。

public array bindActionParams ( $action, $params )
$action yii\base\Action

パラメーターがバインドされるアクション

$params array

アクションにバインドされるパラメーター

return array

アクションが実行できる有効なパラメーター。

throws yii\web\BadRequestHttpException

パラメーターが不足しているか無効な場合。

                public function bindActionParams($action, $params)
{
    if ($action instanceof InlineAction) {
        $method = new \ReflectionMethod($this, $action->actionMethod);
    } else {
        $method = new \ReflectionMethod($action, 'run');
    }
    $args = [];
    $missing = [];
    $actionParams = [];
    $requestedParams = [];
    foreach ($method->getParameters() as $param) {
        $name = $param->getName();
        if (array_key_exists($name, $params)) {
            $isValid = true;
            if (PHP_VERSION_ID >= 80000) {
                $isArray = ($type = $param->getType()) instanceof \ReflectionNamedType && $type->getName() === 'array';
            } else {
                $isArray = $param->isArray();
            }
            if ($isArray) {
                $params[$name] = (array)$params[$name];
            } elseif (is_array($params[$name])) {
                $isValid = false;
            } elseif (
                PHP_VERSION_ID >= 70000
                && ($type = $param->getType()) !== null
                && method_exists($type, 'isBuiltin')
                && $type->isBuiltin()
                && ($params[$name] !== null || !$type->allowsNull())
            ) {
                $typeName = PHP_VERSION_ID >= 70100 ? $type->getName() : (string)$type;
                if ($params[$name] === '' && $type->allowsNull()) {
                    if ($typeName !== 'string') { // for old string behavior compatibility
                        $params[$name] = null;
                    }
                } else {
                    switch ($typeName) {
                        case 'int':
                            $params[$name] = filter_var($params[$name], FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);
                            break;
                        case 'float':
                            $params[$name] = filter_var($params[$name], FILTER_VALIDATE_FLOAT, FILTER_NULL_ON_FAILURE);
                            break;
                        case 'bool':
                            $params[$name] = filter_var($params[$name], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
                            break;
                    }
                    if ($params[$name] === null) {
                        $isValid = false;
                    }
                }
            }
            if (!$isValid) {
                throw new BadRequestHttpException(
                    Yii::t('yii', 'Invalid data received for parameter "{param}".', ['param' => $name])
                );
            }
            $args[] = $actionParams[$name] = $params[$name];
            unset($params[$name]);
        } elseif (
            PHP_VERSION_ID >= 70100
            && ($type = $param->getType()) !== null
            && $type instanceof \ReflectionNamedType
            && !$type->isBuiltin()
        ) {
            try {
                $this->bindInjectedParams($type, $name, $args, $requestedParams);
            } catch (HttpException $e) {
                throw $e;
            } catch (Exception $e) {
                throw new ServerErrorHttpException($e->getMessage(), 0, $e);
            }
        } elseif ($param->isDefaultValueAvailable()) {
            $args[] = $actionParams[$name] = $param->getDefaultValue();
        } else {
            $missing[] = $name;
        }
    }
    if (!empty($missing)) {
        throw new BadRequestHttpException(
            Yii::t('yii', 'Missing required parameters: {params}', ['params' => implode(', ', $missing)])
        );
    }
    $this->actionParams = $actionParams;
    // We use a different array here, specifically one that doesn't contain service instances but descriptions instead.
    if (Yii::$app->requestedParams === null) {
        Yii::$app->requestedParams = array_merge($actionParams, $requestedParams);
    }
    return $args;
}

            
bindInjectedParams() protected method (バージョン 2.0.36 以降利用可能)

定義元: yii\base\Controller::bindInjectedParams()

アクションメソッドのシグネチャ内の型と名前に基づいてパラメーターを設定します。

protected void bindInjectedParams ( ReflectionType $type, $name, &$args, &$requestedParams )
$type ReflectionType

アクションパラメーターのリフレクション型。

$name string

パラメーターの名前。

$args array

アクションの引数の配列。この関数は、アイテムを追加する可能性があります。

$requestedParams array

要求されたパラメーターを含む配列。この関数は、特定のキーを書き込む可能性があります。

throws yii\base\ErrorException

必要なサービスをロードできない場合。

throws yii\base\InvalidConfigException

DI構成にエラーがある場合にスローされます。

throws yii\di\NotInstantiableException

コンテナに適切な定義がない場合、定義を具象クラス(たとえば、インターフェイス型のヒント)に解決できない場合にスローされます。

                final protected function bindInjectedParams(\ReflectionType $type, $name, &$args, &$requestedParams)
{
    // Since it is not a builtin type it must be DI injection.
    $typeName = $type->getName();
    if (($component = $this->module->get($name, false)) instanceof $typeName) {
        $args[] = $component;
        $requestedParams[$name] = 'Component: ' . get_class($component) . " \$$name";
    } elseif ($this->module->has($typeName) && ($service = $this->module->get($typeName)) instanceof $typeName) {
        $args[] = $service;
        $requestedParams[$name] = 'Module ' . get_class($this->module) . " DI: $typeName \$$name";
    } elseif (\Yii::$container->has($typeName) && ($service = \Yii::$container->get($typeName)) instanceof $typeName) {
        $args[] = $service;
        $requestedParams[$name] = "Container DI: $typeName \$$name";
    } elseif ($type->allowsNull()) {
        $args[] = null;
        $requestedParams[$name] = "Unavailable service: $name";
    } else {
        throw new Exception('Could not load required service: ' . $name);
    }
}

            
canGetProperty() public method

定義元: yii\base\Component::canGetProperty()

プロパティを読み取ることができるかどうかを示す値を返します。

プロパティは、以下の場合に読み取り可能です。

  • クラスに、指定された名前に関連付けられたゲッターメソッドがある場合(この場合、プロパティ名は大文字と小文字が区別されません)。
  • クラスに、指定された名前のメンバー変数がある場合($checkVarsがtrueの場合)。
  • アタッチされたビヘイビアに、指定された名前の読み取り可能なプロパティがある場合($checkBehaviorsがtrueの場合)。

canSetProperty()も参照してください。

public boolean canGetProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバー変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティを、このコンポーネントのプロパティとして扱うかどうか

return boolean

プロパティが読み取り可能かどうか

                public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canGetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
canSetProperty() public method

定義元: yii\base\Component::canSetProperty()

プロパティを設定できるかどうかを示す値を返します。

プロパティは、以下の場合に書き込み可能です。

  • クラスに、指定された名前に関連付けられたセッターメソッドがある場合(この場合、プロパティ名は大文字と小文字が区別されません)。
  • クラスに、指定された名前のメンバー変数がある場合($checkVarsがtrueの場合)。
  • アタッチされたビヘイビアに、指定された名前の書き込み可能なプロパティがある場合($checkBehaviorsがtrueの場合)。

canGetProperty()も参照してください。

public boolean canSetProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバー変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティを、このコンポーネントのプロパティとして扱うかどうか

return boolean

プロパティが書き込み可能かどうか

                public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canSetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
checkAccess() public method

現在のユーザーの権限を確認します。

このメソッドは、現在のユーザーが指定されたデータモデルに対して指定されたアクションを実行する権限を持っているかどうかを確認するためにオーバーライドする必要があります。ユーザーがアクセス権を持っていない場合は、yii\web\ForbiddenHttpExceptionをスローする必要があります。

public void checkAccess ( $action, $model null, $params = [] )
$action string

実行されるアクションのID

$model object|null

アクセスされるモデル。nullの場合、特定のモデルがアクセスされていないことを意味します。

$params array

追加のパラメーター

throws yii\web\ForbiddenHttpException

ユーザーにアクセス権がない場合

                public function checkAccess($action, $model = null, $params = [])
{
}

            
className() public static method
2.0.14以降非推奨。PHP >=5.5では、代わりに::classを使用してください。

定義元: yii\base\BaseObject::className()

このクラスの完全修飾名を返します。

public static string className ( )
return string

このクラスの完全修飾名。

                public static function className()
{
    return get_called_class();
}

            
createAction() public method

定義元: yii\base\Controller::createAction()

指定されたアクション ID に基づいてアクションを作成します。

このメソッドは、最初にアクションIDがactions()で宣言されているかどうかを確認します。もしそうであれば、そこで宣言された構成を使用してアクションオブジェクトを作成します。そうでない場合は、名前がactionXyzの形式であるコントローラーメソッドを探します。ここで、xyzはアクションIDです。見つかった場合、そのメソッドを表すyii\base\InlineActionが作成されて返されます。

public yii\base\Action|null createAction ( $id )
$id string

アクションID。

return yii\base\Action|null

新しく作成されたアクションインスタンス。IDがアクションに解決されない場合はNull。

                public function createAction($id)
{
    if ($id === '') {
        $id = $this->defaultAction;
    }
    $actionMap = $this->actions();
    if (isset($actionMap[$id])) {
        return Yii::createObject($actionMap[$id], [$id, $this]);
    }
    if (preg_match('/^(?:[a-z0-9_]+-)*[a-z0-9_]+$/', $id)) {
        $methodName = 'action' . str_replace(' ', '', ucwords(str_replace('-', ' ', $id)));
        if (method_exists($this, $methodName)) {
            $method = new \ReflectionMethod($this, $methodName);
            if ($method->isPublic() && $method->getName() === $methodName) {
                return new InlineAction($id, $this, $methodName);
            }
        }
    }
    return null;
}

            
detachBehavior() public method

定義元: yii\base\Component::detachBehavior()

コンポーネントからビヘイビアをデタッチします。

ビヘイビアのyii\base\Behavior::detach()メソッドが呼び出されます。

public yii\base\Behavior|null detachBehavior ( $name )
$name string

ビヘイビアの名前。

return yii\base\Behavior|null

デタッチされたビヘイビア。ビヘイビアが存在しない場合は Null。

                public function detachBehavior($name)
{
    $this->ensureBehaviors();
    if (isset($this->_behaviors[$name])) {
        $behavior = $this->_behaviors[$name];
        unset($this->_behaviors[$name]);
        $behavior->detach();
        return $behavior;
    }
    return null;
}

            
detachBehaviors() public method

定義元: yii\base\Component::detachBehaviors()

コンポーネントからすべてのビヘイビアをデタッチします。

public void detachBehaviors ( )

                public function detachBehaviors()
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $name => $behavior) {
        $this->detachBehavior($name);
    }
}

            
ensureBehaviors() public method

定義元: yii\base\Component::ensureBehaviors()

behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。

public void ensureBehaviors ( )

                public function ensureBehaviors()
{
    if ($this->_behaviors === null) {
        $this->_behaviors = [];
        foreach ($this->behaviors() as $name => $behavior) {
            $this->attachBehaviorInternal($name, $behavior);
        }
    }
}

            
findLayoutFile() public method

定義元: yii\base\Controller::findLayoutFile()

適用可能なレイアウトファイルを探します。

public string|boolean findLayoutFile ( $view )
$view yii\base\View

レイアウトファイルをレンダリングするビューオブジェクト。

return string|boolean

レイアウトファイルのパス。レイアウトが不要な場合は false。render() で、このパラメータをどのように指定するかを参照してください。

throws yii\base\InvalidArgumentException

レイアウトを指定するために無効なパスエイリアスが使用された場合。

                public function findLayoutFile($view)
{
    $module = $this->module;
    $layout = null;
    if (is_string($this->layout)) {
        $layout = $this->layout;
    } elseif ($this->layout === null) {
        while ($module !== null && $module->layout === null) {
            $module = $module->module;
        }
        if ($module !== null && is_string($module->layout)) {
            $layout = $module->layout;
        }
    }
    if ($layout === null) {
        return false;
    }
    if (strncmp($layout, '@', 1) === 0) {
        $file = Yii::getAlias($layout);
    } elseif (strncmp($layout, '/', 1) === 0) {
        $file = Yii::$app->getLayoutPath() . DIRECTORY_SEPARATOR . substr($layout, 1);
    } else {
        $file = $module->getLayoutPath() . DIRECTORY_SEPARATOR . $layout;
    }
    if (pathinfo($file, PATHINFO_EXTENSION) !== '') {
        return $file;
    }
    $path = $file . '.' . $view->defaultExtension;
    if ($view->defaultExtension !== 'php' && !is_file($path)) {
        $path = $file . '.php';
    }
    return $path;
}

            
getBehavior() public method

定義元: yii\base\Component::getBehavior()

名前付きビヘイビアオブジェクトを返します。

public yii\base\Behavior|null getBehavior ( $name )
$name string

ビヘイビアの名前

return yii\base\Behavior|null

ビヘイビアオブジェクト。ビヘイビアが存在しない場合は null

                public function getBehavior($name)
{
    $this->ensureBehaviors();
    return isset($this->_behaviors[$name]) ? $this->_behaviors[$name] : null;
}

            
getBehaviors() public method

定義元: yii\base\Component::getBehaviors()

このコンポーネントにアタッチされたすべてのビヘイビアを返します。

public yii\base\Behavior[] getBehaviors ( )
return yii\base\Behavior[]

このコンポーネントにアタッチされたビヘイビアのリスト

                public function getBehaviors()
{
    $this->ensureBehaviors();
    return $this->_behaviors;
}

            
getModules() public method

定義元: yii\base\Controller::getModules()

このコントローラーのすべての祖先モジュールを返します。

配列の最初のモジュールは最も外側のモジュール(すなわち、アプリケーションインスタンス)であり、最後は最も内側のモジュールです。

public yii\base\Module[] getModules ( )
return yii\base\Module[]

このコントローラーが配置されているすべての上位モジュール。

                public function getModules()
{
    $modules = [$this->module];
    $module = $this->module;
    while ($module->module !== null) {
        array_unshift($modules, $module->module);
        $module = $module->module;
    }
    return $modules;
}

            
getRoute() public method

定義元: yii\base\Controller::getRoute()

現在のリクエストのルートを返します。

public string getRoute ( )
return string

現在のリクエストのルート(モジュール ID、コントローラー ID、アクション ID)。

                public function getRoute()
{
    return $this->action !== null ? $this->action->getUniqueId() : $this->getUniqueId();
}

            
getUniqueId() public method

定義元: yii\base\Controller::getUniqueId()

コントローラーの一意のIDを返します。

public string getUniqueId ( )
return string

モジュール ID(存在する場合)がプレフィックスとして付加されたコントローラー ID。

                public function getUniqueId()
{
    return $this->module instanceof Application ? $this->id : $this->module->getUniqueId() . '/' . $this->id;
}

            
getView() public method

定義元: yii\base\Controller::getView()

ビューまたはビューファイルのレンダリングに使用できるビューオブジェクトを返します。

render()renderPartial() および renderFile() メソッドは、実際のビューのレンダリングを実装するためにこのビューオブジェクトを使用します。設定されていない場合は、デフォルトで「view」アプリケーションコンポーネントが使用されます。

public yii\base\View|yii\web\View getView ( )
return yii\base\View|yii\web\View

ビューまたはビューファイルをレンダリングするために使用できるビューオブジェクト。

                public function getView()
{
    if ($this->_view === null) {
        $this->_view = Yii::$app->getView();
    }
    return $this->_view;
}

            
getViewPath() public method

定義元: yii\base\Controller::getViewPath()

このコントローラーのビューファイルを含むディレクトリを返します。

デフォルトの実装では、$module$viewPath ディレクトリの下にあるコントローラー $id と同じ名前のディレクトリを返します。

public string getViewPath ( )
return string

このコントローラーのビューファイルを含むディレクトリ。

                public function getViewPath()
{
    if ($this->_viewPath === null) {
        $this->_viewPath = $this->module->getViewPath() . DIRECTORY_SEPARATOR . $this->id;
    }
    return $this->_viewPath;
}

            
goBack() public method

定義元: yii\web\Controller::goBack()

ブラウザを最後に訪れたページにリダイレクトします。

このメソッドはアクション内で yii\web\Response を直接返すことによって使用できます。

// stop executing this action and redirect to last visited page
return $this->goBack();

この関数を動作させるためには、事前に適切な場所に 返却 URL を設定する必要があります。

yii\web\User::getReturnUrl() も参照してください。

public yii\web\Response goBack ( $defaultUrl null )
$defaultUrl string|array|null

返却 URL が以前に設定されていない場合にデフォルトで使用する返却 URL。これが null で返却 URL が以前に設定されていない場合、yii\web\Application::$homeUrl にリダイレクトされます。URL の許容される形式については、yii\web\User::setReturnUrl() を参照してください。

return yii\web\Response

現在のレスポンスオブジェクト

                public function goBack($defaultUrl = null)
{
    return $this->response->redirect(Yii::$app->getUser()->getReturnUrl($defaultUrl));
}

            
goHome() パブリックメソッド

定義元: yii\web\Controller::goHome()

ブラウザをホームページにリダイレクトします。

このメソッドはアクション内で yii\web\Response を直接返すことによって使用できます。

// stop executing this action and redirect to home page
return $this->goHome();
public yii\web\Response goHome ( )
return yii\web\Response

現在のレスポンスオブジェクト

                public function goHome()
{
    return $this->response->redirect(Yii::$app->getHomeUrl());
}

            
hasEventHandlers() パブリックメソッド

定義元: yii\base\Component::hasEventHandlers()

指定された名前のイベントにハンドラーがアタッチされているかどうかを示す値を返します。

public boolean hasEventHandlers ( $name )
$name string

イベント名

return boolean

イベントにアタッチされたハンドラがあるかどうか。

                public function hasEventHandlers($name)
{
    $this->ensureBehaviors();
    if (!empty($this->_events[$name])) {
        return true;
    }
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (!empty($handlers) && StringHelper::matchWildcard($wildcard, $name)) {
            return true;
        }
    }
    return Event::hasHandlers($this, $name);
}

            
hasMethod() パブリックメソッド

定義元: yii\base\Component::hasMethod()

メソッドが定義されているかどうかを示す値を返します。

メソッドが定義されるのは、以下の条件のときです。

  • クラスが指定された名前のメソッドを持っている
  • アタッチされたビヘイビアが与えられた名前のメソッドを持っている ($checkBehaviors が true の場合)。
public boolean hasMethod ( $name, $checkBehaviors true )
$name string

プロパティ名

$checkBehaviors boolean

ビヘイビアのメソッドをこのコンポーネントのメソッドとして扱うかどうか

return boolean

メソッドが定義されているかどうか

                public function hasMethod($name, $checkBehaviors = true)
{
    if (method_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->hasMethod($name)) {
                return true;
            }
        }
    }
    return false;
}

            
hasProperty() パブリックメソッド

定義元: yii\base\Component::hasProperty()

このコンポーネントにプロパティが定義されているかどうかを示す値を返します。

プロパティが定義されるのは、以下の条件のときです。

  • クラスが指定された名前に関連付けられたゲッターまたはセッターメソッドを持っている (この場合、プロパティ名はケースインセンシティブです)。
  • クラスに、指定された名前のメンバー変数がある場合($checkVarsがtrueの場合)。
  • アタッチされたビヘイビアが与えられた名前のプロパティを持っている ($checkBehaviors が true の場合)。

以下も参照してください

public boolean hasProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバー変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティを、このコンポーネントのプロパティとして扱うかどうか

return boolean

プロパティが定義されているかどうか

                public function hasProperty($name, $checkVars = true, $checkBehaviors = true)
{
    return $this->canGetProperty($name, $checkVars, $checkBehaviors) || $this->canSetProperty($name, false, $checkBehaviors);
}

            
init() パブリックメソッド (バージョン 2.0.36 から利用可能)

オブジェクトを初期化します。

このメソッドは、オブジェクトが与えられた設定で初期化された後、コンストラクタの最後に呼び出されます。

public void init ( )

                public function init()
{
    parent::init();
    if ($this->modelClass === null) {
        throw new InvalidConfigException('The "modelClass" property must be set.');
    }
}

            
off() パブリックメソッド

定義元: yii\base\Component::off()

既存のイベントハンドラーをこのコンポーネントからデタッチします。

このメソッドは on() の逆です。

注意: イベント名にワイルドカードパターンが渡された場合、このワイルドカードで登録されたハンドラのみが削除され、このワイルドカードに一致するプレーンな名前で登録されたハンドラは残ります。

on() も参照してください。

public boolean off ( $name, $handler null )
$name string

イベント名

$handler callable|null

削除するイベントハンドラ。null の場合、名前付きイベントにアタッチされたすべてのハンドラが削除されます。

return boolean

ハンドラが見つかり、分離された場合

                public function off($name, $handler = null)
{
    $this->ensureBehaviors();
    if (empty($this->_events[$name]) && empty($this->_eventWildcards[$name])) {
        return false;
    }
    if ($handler === null) {
        unset($this->_events[$name], $this->_eventWildcards[$name]);
        return true;
    }
    $removed = false;
    // plain event names
    if (isset($this->_events[$name])) {
        foreach ($this->_events[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_events[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_events[$name] = array_values($this->_events[$name]);
            return true;
        }
    }
    // wildcard event names
    if (isset($this->_eventWildcards[$name])) {
        foreach ($this->_eventWildcards[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_eventWildcards[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_eventWildcards[$name] = array_values($this->_eventWildcards[$name]);
            // remove empty wildcards to save future redundant regex checks:
            if (empty($this->_eventWildcards[$name])) {
                unset($this->_eventWildcards[$name]);
            }
        }
    }
    return $removed;
}

            
on() パブリックメソッド

定義元: yii\base\Component::on()

イベントにイベントハンドラーをアタッチします。

イベントハンドラは有効な PHP コールバックである必要があります。以下にいくつかの例を示します。

function ($event) { ... }         // anonymous function
[$object, 'handleClick']          // $object->handleClick()
['Page', 'handleClick']           // Page::handleClick()
'handleClick'                     // global function handleClick()

イベントハンドラは、次のシグネチャで定義する必要があります。

function ($event)

ここで、$eventyii\base\Event オブジェクトであり、イベントに関連付けられたパラメータが含まれています。

2.0.14 以降、イベント名をワイルドカードパターンとして指定できます。

$component->on('event.group.*', function ($event) {
    Yii::trace($event->name . ' is triggered.');
});

off() も参照してください。

public void on ( $name, $handler, $data null, $append true )
$name string

イベント名

$handler callable

イベントハンドラ

$data mixed

イベントがトリガーされたときにイベントハンドラに渡されるデータ。イベントハンドラが呼び出されたとき、このデータは yii\base\Event::$data を介してアクセスできます。

$append boolean

新しいイベントハンドラを既存のハンドラリストの末尾に追加するかどうか。false の場合、新しいハンドラは既存のハンドラリストの先頭に挿入されます。

                public function on($name, $handler, $data = null, $append = true)
{
    $this->ensureBehaviors();
    if (strpos($name, '*') !== false) {
        if ($append || empty($this->_eventWildcards[$name])) {
            $this->_eventWildcards[$name][] = [$handler, $data];
        } else {
            array_unshift($this->_eventWildcards[$name], [$handler, $data]);
        }
        return;
    }
    if ($append || empty($this->_events[$name])) {
        $this->_events[$name][] = [$handler, $data];
    } else {
        array_unshift($this->_events[$name], [$handler, $data]);
    }
}

            
redirect() パブリックメソッド

定義元: yii\web\Controller::redirect()

ブラウザを指定されたURLにリダイレクトします。

このメソッドは yii\web\Response::redirect() へのショートカットです。

アクションでは、直接 yii\web\Response を返すことで使用できます。

// stop executing this action and redirect to login page
return $this->redirect(['login']);
public yii\web\Response redirect ( $url, $statusCode 302 )
$url string|array

リダイレクト先の URL。これは次のいずれかの形式にできます。

  • URL を表す文字列 (例: "https://example.com")
  • URL エイリアスを表す文字列 (例: "@example.com")
  • [$route, ...name-value pairs...] の形式の配列 (例: ['site/index', 'ref' => 1]) yii\helpers\Url::to() が、配列を URL に変換するために使用されます。

単一のスラッシュ "/" で始まる相対 URL は、現在のリクエストのホスト情報を先頭に追加することで絶対 URL に変換されます。

$statusCode 整数

HTTP ステータスコード。デフォルトは 302 です。HTTP ステータスコードの詳細については、https://tools.ietf.org/html/rfc2616#section-10 を参照してください。

return yii\web\Response

現在のレスポンスオブジェクト

                public function redirect($url, $statusCode = 302)
{
    // calling Url::to() here because Response::redirect() modifies route before calling Url::to()
    return $this->response->redirect(Url::to($url), $statusCode);
}

            
refresh() パブリックメソッド

定義元: yii\web\Controller::refresh()

現在のページをリフレッシュします。

このメソッドは yii\web\Response::refresh() へのショートカットです。

アクションでは、直接 yii\web\Response を返すことで使用できます。

// stop executing this action and refresh the current page
return $this->refresh();
public yii\web\Response refresh ( $anchor '' )
$anchor string

リダイレクト URL に追加されるアンカー。デフォルトは空です。アンカーを指定する場合は、アンカーが '#' で始まるようにしてください。

return yii\web\Response

レスポンスオブジェクト自体

                public function refresh($anchor = '')
{
    return $this->response->redirect($this->request->getUrl() . $anchor);
}

            
render() パブリックメソッド

定義元: yii\base\Controller::render()

ビューをレンダリングし、利用可能な場合はレイアウトを適用します。

レンダリングするビューは、次のいずれかの形式で指定できます。

  • パスエイリアス (例: "@app/views/site/index");
  • アプリケーション内での絶対パス(例: "//site/index"):ビュー名は二重スラッシュで始まります。実際のビューファイルは、アプリケーションのビューパスの下で検索されます。
  • モジュール内での絶対パス(例: "/site/index"):ビュー名は単一スラッシュで始まります。実際のビューファイルは、$moduleビューパスの下で検索されます。
  • 相対パス(例: "index"):実際のビューファイルは、$viewPathの下で検索されます。

どのレイアウトを適用すべきかを決定するために、以下の2つのステップが実行されます。

  1. 最初のステップでは、レイアウト名とコンテキストモジュールを決定します。
  • $layoutが文字列として指定されている場合、それをレイアウト名として使用し、$moduleをコンテキストモジュールとして使用します。
  • $layoutがnullの場合、このコントローラのすべての上位モジュールを検索し、layoutがnullでない最初のモジュールを見つけます。レイアウトと対応するモジュールは、それぞれレイアウト名とコンテキストモジュールとして使用されます。そのようなモジュールが見つからない場合、または対応するレイアウトが文字列でない場合は、適用可能なレイアウトがないことを意味するfalseを返します。
  1. 2番目のステップでは、前に見つかったレイアウト名とコンテキストモジュールに従って、実際のレイアウトファイルを決定します。レイアウト名は次のいずれかです。
  • パスエイリアス(例: "@app/views/layouts/main")。
  • 絶対パス(例: "/main"):レイアウト名はスラッシュで始まります。実際のレイアウトファイルは、アプリケーションのレイアウトパスの下で検索されます。
  • 相対パス(例: "main"):実際のレイアウトファイルは、コンテキストモジュールのレイアウトパスの下で検索されます。

レイアウト名にファイル拡張子が含まれていない場合は、デフォルトの拡張子.phpが使用されます。

public string render ( $view, $params = [] )
$view string

ビュー名。

$params array

ビューで利用可能にする必要のあるパラメータ(名前と値のペア)。これらのパラメータはレイアウトでは利用できません。

return string

レンダリング結果。

throws yii\base\InvalidArgumentException

ビューファイルまたはレイアウトファイルが存在しない場合。

                public function render($view, $params = [])
{
    $content = $this->getView()->render($view, $params, $this);
    return $this->renderContent($content);
}

            
renderAjax() public メソッド

定義元: yii\web\Controller::renderAjax()

AJAXリクエストに応答してビューをレンダリングします。

このメソッドは、ビューに登録されたJS/CSSスクリプトとファイルをレンダリング結果に注入する点を除いて、renderPartial()と似ています。このため、AJAXリクエストに応答するためにビューをレンダリングするには、renderPartial()の代わりにこのメソッドを使用する必要があります。

public string renderAjax ( $view, $params = [] )
$view string

ビュー名。ビュー名の指定方法については、render()を参照してください。

$params array

ビューで利用可能にする必要のあるパラメータ(名前と値のペア)。

return string

レンダリング結果。

                public function renderAjax($view, $params = [])
{
    return $this->getView()->renderAjax($view, $params, $this);
}

            
renderContent() public メソッド (バージョン 2.0.1 から利用可能)

定義元: yii\base\Controller::renderContent()

レイアウトを適用して静的な文字列をレンダリングします。

public string renderContent ( $content )
$content string

レンダリングされる静的な文字列

return string

与えられた静的な文字列を$content変数として持つレイアウトのレンダリング結果。レイアウトが無効になっている場合は、文字列がそのまま返されます。

                public function renderContent($content)
{
    $layoutFile = $this->findLayoutFile($this->getView());
    if ($layoutFile !== false) {
        return $this->getView()->renderFile($layoutFile, ['content' => $content], $this);
    }
    return $content;
}

            
renderFile() public メソッド

定義元: yii\base\Controller::renderFile()

ビューファイルをレンダリングします。

public string renderFile ( $file, $params = [] )
$file string

レンダリングされるビューファイル。これは、ファイルパスまたはパスエイリアスのいずれかです。

$params array

ビューで利用可能にする必要のあるパラメータ(名前と値のペア)。

return string

レンダリング結果。

throws yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function renderFile($file, $params = [])
{
    return $this->getView()->renderFile($file, $params, $this);
}

            
renderPartial() public メソッド

定義元: yii\base\Controller::renderPartial()

レイアウトを適用せずにビューをレンダリングします。

このメソッドは、レイアウトを適用しない点でrender()と異なります。

public string renderPartial ( $view, $params = [] )
$view string

ビュー名。ビュー名の指定方法については、render()を参照してください。

$params array

ビューで利用可能にする必要のあるパラメータ(名前と値のペア)。

return string

レンダリング結果。

throws yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function renderPartial($view, $params = [])
{
    return $this->getView()->render($view, $params, $this);
}

            
run() public メソッド

定義元: yii\base\Controller::run()

ルートで指定されたリクエストを実行します。

ルートは、このコントローラ内のアクションのIDか、モジュールID、コントローラID、アクションIDで構成される完全なルートのいずれかです。ルートがスラッシュ'/'で始まる場合、ルートの解析はアプリケーションから開始されます。それ以外の場合は、このコントローラの親モジュールから開始されます。

runAction()も参照してください。

public mixed run ( $route, $params = [] )
$route string

処理されるルート。例:'view'、'comment/view'、'/admin/comment/view'。

$params array

アクションに渡されるパラメータ。

return mixed

アクションの結果。

                public function run($route, $params = [])
{
    $pos = strpos($route, '/');
    if ($pos === false) {
        return $this->runAction($route, $params);
    } elseif ($pos > 0) {
        return $this->module->runAction($route, $params);
    }
    return Yii::$app->runAction(ltrim($route, '/'), $params);
}

            
runAction() public メソッド

定義元: yii\base\Controller::runAction()

このコントローラー内で、指定されたアクションIDとパラメーターを使用してアクションを実行します。

アクションIDが空の場合、このメソッドは$defaultActionを使用します。

createAction()も参照してください。

public mixed runAction ( $id, $params = [] )
$id string

実行するアクションのID。

$params array

アクションに渡されるパラメータ(名前と値のペア)。

return mixed

アクションの結果。

throws yii\base\InvalidRouteException

要求されたアクションIDをアクションに正常に解決できない場合。

                public function runAction($id, $params = [])
{
    $action = $this->createAction($id);
    if ($action === null) {
        throw new InvalidRouteException('Unable to resolve the request: ' . $this->getUniqueId() . '/' . $id);
    }
    Yii::debug('Route to run: ' . $action->getUniqueId(), __METHOD__);
    if (Yii::$app->requestedAction === null) {
        Yii::$app->requestedAction = $action;
    }
    $oldAction = $this->action;
    $this->action = $action;
    $modules = [];
    $runAction = true;
    // call beforeAction on modules
    foreach ($this->getModules() as $module) {
        if ($module->beforeAction($action)) {
            array_unshift($modules, $module);
        } else {
            $runAction = false;
            break;
        }
    }
    $result = null;
    if ($runAction && $this->beforeAction($action)) {
        // run the action
        $result = $action->runWithParams($params);
        $result = $this->afterAction($action, $result);
        // call afterAction on modules
        foreach ($modules as $module) {
            /* @var $module Module */
            $result = $module->afterAction($action, $result);
        }
    }
    if ($oldAction !== null) {
        $this->action = $oldAction;
    }
    return $result;
}

            
serializeData() protected メソッド

定義元: yii\rest\Controller::serializeData()

指定されたデータをシリアライズします。

デフォルトの実装では、$serializerで指定された構成に基づいてシリアライザーを作成します。次に、シリアライザーを使用して、与えられたデータをシリアル化します。

protected mixed serializeData ( $data )
$data mixed

シリアル化するデータ

return mixed

シリアル化されたデータ。

                protected function serializeData($data)
{
    return Yii::createObject($this->serializer)->serialize($data);
}

            
setView() public メソッド

定義元: yii\base\Controller::setView()

このコントローラーで使用されるビューオブジェクトを設定します。

public void setView ( $view )
$view yii\base\View|yii\web\View

ビューまたはビューファイルをレンダリングするために使用できるビューオブジェクト。

                public function setView($view)
{
    $this->_view = $view;
}

            
setViewPath() public メソッド (バージョン 2.0.7 以降)

定義元: yii\base\Controller::setViewPath()

ビューファイルを含むディレクトリを設定します。

public void setViewPath ( $path )
$path string

ビューファイルのルートディレクトリ。

throws yii\base\InvalidArgumentException

ディレクトリが無効な場合

                public function setViewPath($path)
{
    $this->_viewPath = Yii::getAlias($path);
}

            
trigger() public メソッド

定義元: yii\base\Component::trigger()

イベントをトリガーします。

このメソッドはイベントの発生を表します。クラスレベルのハンドラーを含む、イベントにアタッチされたすべてのハンドラーを呼び出します。

public void trigger ( $name, yii\base\Event $event null )
$name string

イベント名

$event yii\base\Event|null

イベントインスタンス。設定されていない場合、デフォルトの yii\base\Event オブジェクトが作成されます。

                public function trigger($name, Event $event = null)
{
    $this->ensureBehaviors();
    $eventHandlers = [];
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (StringHelper::matchWildcard($wildcard, $name)) {
            $eventHandlers[] = $handlers;
        }
    }
    if (!empty($this->_events[$name])) {
        $eventHandlers[] = $this->_events[$name];
    }
    if (!empty($eventHandlers)) {
        $eventHandlers = call_user_func_array('array_merge', $eventHandlers);
        if ($event === null) {
            $event = new Event();
        }
        if ($event->sender === null) {
            $event->sender = $this;
        }
        $event->handled = false;
        $event->name = $name;
        foreach ($eventHandlers as $handler) {
            $event->data = $handler[1];
            call_user_func($handler[0], $event);
            // stop further handling if the event is handled
            if ($event->handled) {
                return;
            }
        }
    }
    // invoke class-level attached handlers
    Event::trigger($this, $name, $event);
}

            
verbs() protected メソッド

許可されたHTTP動詞を宣言します。

許可される動詞の宣言方法については、yii\filters\VerbFilter::$actions を参照してください。

protected array verbs ( )
return array

許可されるHTTP動詞。

                protected function verbs()
{
    return [
        'index' => ['GET', 'HEAD'],
        'view' => ['GET', 'HEAD'],
        'create' => ['POST'],
        'update' => ['PUT', 'PATCH'],
        'delete' => ['DELETE'],
    ];
}