0

Rails では、データを保存するときにコントローラーで使用できるパラメーターを指定できます。だから、params提出されたデータで、私はこれを行うことができます:

params.require(:person).permit(:name, :age)

これにより、キーが存在することが保証され:person、人のものではないもの:name:age.

CakePHP でこれを達成する方法はありますか?

編集: 私は PHP を書くことができることを知っています。すでにこれを行っている Cake コンポーネント/プラグインがあるかどうかを知りたいです。

4

3 に答える 3

2

このPHPの方法で何か:

// submited data
$this->request->data['Person'] = array(
   'name' => 'Salines',
   'age' => '41',
   'job' => 'Web Developer'
);

// check if isset and filter out anything that is not a person's name or age

if(isset($this->request->data['Person']))
{
    $permit = array('name' => '','age' => '');
    $this->request->data['Person'] = array_intersect_key($this->request->data['Person'],$permit);
}

//and return $this->request->data like 
array(
   'Person' => array(
       'name' => 'Salines',
       'age' => '41'
   )
);
于 2015-02-14T21:17:32.430 に答える
1

Cake が提供するソリューションを探しています (ある場合)

さて、「ケーキが提供する」とは、フレームワーク自体のことですか? いいえ、コアにはこの機能はありませんが、2 つのプラグインがあります。

Cake3 の場合、私は Plum-Search を選びます。これは、他のプラグインの初期コードと同じ人によって書かれていますが、完全に書き直されており、Cake3 をより有効に活用しています。

今度あなたが尋ねるときは、正確な Cake のバージョンを挙げてください。

どちらのプラグインも PRG パターンを実装していますが、クエリ パラメーターを明示的に許可または拒否していません。フィルター宣言で指定したパラメーターのみを取得し、それらをリクエストに変換します。検証して保存し、不要なフィールドを除外します。

于 2015-02-15T11:06:10.613 に答える