こんにちは、私は変な立場で立ち往生しています。
列のあるテーブルがあります。id_acces、id_user、id_menu、has_access (ブール値)
基本的に、特定のユーザーがページの一部にアクセスできるようにするためのチェックボックスと ID 番号のリストを含むフォームがあります。基本的に、アクセス権があるかどうか、およびテーブルに新しいエントリを作成するために選択されたページに関するユーザーのエントリがない場合は、テーブルを更新する必要があります。したがって、私の配列は次のようになります
Array
(
[AdminMenu] => Array
(
[id_user] => 1
[id_menu] => Array
(
[4] => enabled
[21] => enabled
[22] => enabled
[23] => enabled
[24] => enabled
[1] => enabled
[5] => enabled
[25] => enabled
[26] => enabled
[6] => enabled
[7] => enabled
[29] => enabled
[8] => enabled
[30] => enabled
[31] => enabled
[32] => enabled
[33] => enabled
[34] => enabled
[35] => enabled
[36] => enabled
[37] => enabled
[38] => enabled
[39] => enabled
[40] => enabled
[41] => enabled
[60] => enabled
[2] => enabled
[10] => enabled
[11] => enabled
[12] => enabled
[13] => enabled
[14] => enabled
[15] => enabled
[16] => enabled
[17] => enabled
[18] => enabled
[9] => enabled
[3] => enabled
[19] => enabled
[20] => enabled
)
)
)
キーはid_menuで、値はチェックボックスがチェックされているかどうかだけです。
この配列を使用して、ケーキのphpでテーブルに挿入または更新する方法を教えてください。現在、配列を $key=>$value としてループし、キーが存在するようにテーブルに対してクエリを実行しています。存在する場合は、更新クエリを実行する必要があります。そうでない場合は、その特定のページまたは id_menu に対して挿入クエリを実行する必要があります。助けてください
foreach($this->data['AdminMenu']['id_menu'] as $key=>$value) {
$check = select against the table where the id_menu = $key
if($key = $check[0]['AdminAccess']['id_menu']) {
$this->AdminAcess->id_menu=$key;
$this->AdminAccess->id_user=$user_id;
$this->AdminAccess->set('has_access', 't');
$this->AdminAccess->save();
} else {
$this->AdminAcess->id_menu=$key;
$this->AdminAccess->id_user=$user_id;
$this->AdminAccess->saveField('has_access', 'false');
}
}
このループよりも簡単な方法があるはずです。また、挿入または更新を行うにはどうすればよいですか。これはどちらの方法でも挿入または更新を行っていません