0

従業員と複合体は多対多の関係にあります。ベイク コンソールを使用して、従業員と複合体テーブルのモデル、コントローラーを生成しました。私の質問:

2 番目の質問: -この 3 つのテーブルにデータを保存するにはどうすればよいですか。私のアプリでは、 Complex ごとに従業員を保存する必要があります。

// Employees Controller
public function addEmpPerComplex($id_complex){
$emp = $this->Employees->newEntity();
if ($this->request->is('post')) {
$employee = $this->Employees->patchEntity($employee, $this->request->data, ['associated'=>['Complexes._joinData']] );
//here I need to insert the record that contains the employee data in Employees Table 
// then I need to insert in "complexes_employees" the ID of Complex sended in parametre of this function and the ID of the new Employee

私を助けてくれてありがとう

4

1 に答える 1

2

このテーブルのモデルとコントローラーもベイクする必要がありますか?

いいえ、CakePHP は抽象Tableクラスを使用します。ただし、この関係について追加情報が必要な場合は、結合モデルを作成する必要があります。http://book.cakephp.org/3.0/en/orm/associations.html#using-the-through-option を確認してください

この 3 つのテーブルにデータを保存するにはどうすればよいですか?

データに関連エンティティの ID がある限り、エンティティと関係の両方が自動的に保存されます。

$data = [
    //employee data,
    'complexes' => [
        ['id' => $id_complex]
    ]
]

$this->Employees->patchEntity($employee, $data, [
    'associated' => ['Complexes']
]);

/* 
 Saves both the new Employee and the relation 
 (employeed id and complex id in complexes_employees)
*/
$this->Employees->save($employee);

詳細については、http: //book.cakephp.org/3.0/en/orm/ Saving-data.html# Saving-belongstomany-associationsを参照してください。

于 2016-01-14T14:59:49.090 に答える