0

初期のベータ版から module.config.php でこれを使用しています。

'di' => array(
    'instance' => array(
        'alias' => array(
            'Model' => 'Application\Model\Application',
        ),
        'Application\Controller\IndexController' => array(
            'parameters' => array(
                'Model' => 'Model',
            )
        ),
    ),
),

これをindexControllerに入れる:

protected $Model;

public function setModel (\Application\Model\Model $Model)
{
    $this->Model = $Model;
}

しかし、beta5 から rc2 にアップデートしたため、動作しなくなりました。ZF2 コードにもドキュメントにも変更が見つかりません。

4

2 に答える 2

1

コントローラの DI の使用方法を変更するセキュリティ ホールが閉じられました。参照: https://github.com/zendframework/zf2/pull/2005

于 2012-08-13T05:36:19.587 に答える
0

@superdweebieが述べたように、Diが非コントローラークラスをインスタンス化できるセキュリティホールは閉じられました。
Diのコントローラーを引き続き使用するには、Diconfigでコントローラーをホワイトリストに登録する必要があります。

return array(
    'di' => array(
        'allowed_controllers' => array(
            // controllers list goes here
        ),
        //...
    ),
);

MarcoPivettaによるこのブログ投稿も確認してください。Diとコントローラーの使い方を説明しています。

于 2012-08-14T08:42:01.323 に答える