私はテーブル,およびtype
を持つテーブルuser
を持っています。 type
は、従業員,ベンダーおよびクライアントのいずれかまたはこれらの組み合わせです。ユーザーはベンダーとクライアントのいずれか、または別の組み合わせの両方になることができます。 type
フィールドでは、複数のチェックボックスを使用しています(下記のコードを参照)。このコードはでカンマ区切り値として複数の値を保存cakephpのユーザレコードを編集中にチェックボックスがオフになっています
app/models/user.php
function beforeSave() {
if(!empty($this->data['User']['type'])) {
$this->data['User']['type'] = join(',', $this->data['User']['type']);
}
return true;
}
:私はbeforeSave
コールバックメソッドを使用しているモデルファイルで
<div class="users form">
<?php echo $this->Form->create('User');?>
<fieldset>
<legend><?php __('Add User'); ?></legend>
<?php
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->input('type', array('type' => 'select', 'multiple' => 'checkbox','options' => array(
'client' => 'Client',
'vendor' => 'Vendor',
'employee' => 'Employee'
)
));
?>
</fieldset>
<?php echo $this->Form->end(__('Submit', true));?>
</div>
:これは、ビュー/ユーザー/ add.ctpファイルでありますデータベース。
主な問題は、ユーザーを編集しているときです。ユーザがユーザ作成中に複数のタイプを選択した場合、タイプのチェックボックスはチェックされません。
まだ未チェックです。このモデルのコードに時間を費やす前に、その部分を正しく取得してください。 User-> Typeは1対多の関係です。そのタイプの関係は、ユーザが1行から3行までの間にある場合がある第2の表で表される。 1つの列に複数の値がある場合(つまり、列の値がアトミックでない場合)は、デザインを正規化していません。 –
@Dan:新しいテーブルタイプとユーザタイプテーブルを作成して、ユーザとタイプを関連付ける必要があるとします。 –
必ずしも型テーブルは必要ありませんが、user_typeテーブルはあります。 –