2016-06-16 8 views
0

私のアプリケーション(HABTM)には、テーブルメンバーと会社の関係があり、メンバーには多くの会社があり、会社にはメンバーがたくさんありますが、メンバーには会社がなく、会社少なくとも1人のメンバーが必要です。cakephpで複数選択3

だから、私は会社を作成すると、メンバーのフィールド(マルチ選択フィールド)を表示します。会社を作成しているメンバーだけを必須として自動的に選択し、ユーザーには許可しません。ベークを使用して

、ケーキを選択する複数のためにこのコードを生成:

echo $this->Form->input('members._ids', ['options' => $members]); 

とすべてのメンバーを示して、私は次のことを試してみました:

$id = $this->request->session()->read('Auth.User')['id']; 

会社を作成するユーザーをキャッチするために、その後、:

echo $this->Form->input('members._ids', ['options' => $members, 'default' => $id, 'type' => 'hidden']); 

しかし、私はどのように、できる会社を作成しますが、ユーザーに関連付けされていませんこれを行う?

ありがとうございます!形でそれを維持する

答えて

1

、あなたはの代わりデフォルトとして$ IDを設定してみることが、フォームの値は、それが隠されている場合でも、によって変更することができるので、それは仕方ここで推奨ではありませんユーザー/メンバー。ログインしたメンバーのみを設定したいので、会社を保存する前にcontrollerでそれを行うことができます。それをやっての

推奨方法:

// $companiesTable is your table model for the company and $company is the entity you would be creating and patching with the request data from the form 
$memberEntity = $companiesTable->Members->get($id); 
$company->members = [$memberEntity]; 
$companiesTable->save($company); 
+1

私は、私のコントローラで、その期待通りのように働いて、おかげで推奨される方法をaplliedし。 –