AppController で変数が変更されない理由がわかりません。AppController のサブクラスがあり、アクション メソッドで、AppController の変数を変更しています。ただし、これは afterFilter には反映されません。
これは CakePHP の AppController です
<?php
class AppController extends Controller {
var $xxxx;
function beforeFilter()
{
$this->xxxx = 'this should be changed';
}
function afterFilter()
{
var_dump($this->xxxx);
exit;
}
}
?>
そして、これは私のUsersControllerです
<?php
class UsersController extends AppController {
function view( $id )
{
echo "From the AppController: {$this->xxxx} \n";
$this->xxxx = 'with this';
}
}
?>
これを実行したときの出力は次のとおりです。
From the AppController: this should be changed
string 'this should be changed' (length=22)
私はこれを期待しています:
From the AppController: this should be changed
string 'with this' (length=9)
なぜこのように振る舞うか知っていますか?これを正しく行う方法はありますか?