在蛋糕3中多选

时间:2016-06-16 10:04:56

标签: cakephp-3.0

我在我的应用程序(HABTM)中有桌面成员和公司的关系,成员可以有很多公司,公司可以有很多成员,但成员可以没有公司,公司必须至少有一个构件。

所以,当我创建一个公司时,它会显示成员的字段(多选字段),我想只自动选择创建该公司的成员为强制性,而不允许用户选择。

使用bake,cake为多个选择生成此代码:

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 个答案:

答案 0 :(得分:2)

要将其保留在表单中,您可以尝试将$ 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);