CakePHP でセッションにデータを保存しようとしています。ドキュメントと多くの例をオンラインで読みましたが、セッションにデータを保存できないようです。
私のコントローラーでは、セッション書き込み機能を追加しました。
public function take(){
if(array_key_exists('option', $this->request->data)){
foreach($this->request->data['option'] as $cmd => $options){
foreach($options as $cmd => $option){
$buildCmnd = '-1 RENDERER*'.$this->request->data['Playlist']['layer'].'*TREE*$master*SCRIPT*INSTANCE*externalCommand SET '.$this->request->data['Playlist']['el'].' '.$cmd.' text={'.$option.'}';
$this->send($buildCmnd);
}
}
}
$this->Session->write('TakenCommand', array( $this->request->data['Playlist']['el'] ) );
$this->autoRender = false;
}
私はjquery ajaxを介してアクションを呼び出しています:
$("#inputTake").click(
function()
{
jQuery.ajax({
type:'POST',
async: true,
cache: false,
url: '/Controller/take',
success: function(response) {
jQuery('#resultField').val(response);
},
data:jQuery('form').serialize()
});
return false;
}
);
私は ajax を使用しているため、セッションを確認するために呼び出す要素を作成しました。要素の内容は次のとおりです。
<pre>
<?php print_r($this->Session->read());?>
</pre>
ただし、セッション変数「TakenCommand」は出力に表示されません。
Session コンポーネントを AppController.php ファイルに追加しました。
public $components = array('Session');
そして、core.php ファイル セッションのデフォルトを「php」から「cake」に変更しましたが、どちらも役に立たないようです。
どんな提案でも大歓迎です!
core.php で 'checkAgent' => false を設定することを提案している回答を見たことがありますが、これも役に立ちません。CakePHP 1.x では、セキュリティ レベルを中に設定して問題を解決することができましたが、このオプションは 2.x では利用できません。