[[Kawahara Dental Clinic]]
**データ挿入時にダブルクウォートが置換されている?? [#x26e159b]
-そうならデータベース挿入前にbeforeSaveで置換すればよい
-データベース挿入前にデータを置換するには~/cake/app_model.phpを以下のように拡張
**データ挿入時にダブルクウォートがおかしくなっている? [#x26e159b]
-データベース挿入前にシングルクウォートを置換すればよい
--いちいち挿入ごとに置換するのは手間がかかる
--モデルごとにbeforeSaveを定義するのも手間がかかる
--そこでmodelの親クラスのbeforeSaveを書き換える
-~/cake/app_model.phpを以下のように拡張

 class AppModel extends Model{
    function beforeSave(){
        $this->data = $this->stripDoubleQoute($this->data);

 
    }

 
    function stripDoubleQoute($data){

 
        foreach($data as $key => $content){

 
            if( is_array($content) )
                $data[$key] = $this->stripDoubleQoute($content);
            else
                $data[$key] = str_replace("before","after",$data[$key]);
        }

 
        return $data;

 
    }

 
 }
-連想配列の再帰処理で手間取った
--こんなのもあるみたい。まだ試してない。
--http://us3.php.net/manual/ja/function.array-walk-recursive.php
**なおらないのでbeforeSaveの実行されるタイミングを見てみる [#r6e25635]
-たぶんサニタイズ前に行われている
**DB挿入前にすでにデータがおかしくなっている? [#c49a6acf]
-incident_controller.phpのsaveの前にデータを出力するとデータ挿入前にすでにおかしくなっているみたい?



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS