あなたが求めているのは、2 つのモデルをリンクすることです。CakePHP には、「最後の挿入から id を取得し、それを使用して別のことを行う」必要なく、これらすべてを行う堅実なリレーションシップ マッパーがあります。
私が間違っていなければ、あなたの問題は簡単に言えば次のとおりです。
An Employee hasMany users
A User belongs to one Employee
1 対多のモデル関係のために、CakePHP には「hasMany」と呼ばれるものがあります: http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasmany
たとえば、ユーザーが多くのコメントを作成できるのと同じ方法です。従業員は多くのユーザーを作成できます。
ユーザーと従業員の間の関係の裏返しとして、「belongsTo」マッピングが必要になるため、ユーザーが従業員によって追加されたことがわかります: http://book.cakephp.org/2.0/en/models /associations-linking-models-together.html#belongsto
このようにして、いわば「ユーザーを通じて」検索することで、「ユーザー X」を追加した従業員を見つけることができます。
モデルを一緒にマッピングすると、データの取得 (findBy: http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#findbyなど) やモデルの関係の管理がはるかに簡単になります。リレーションがどのように連鎖するか (上記で概説したモデル マッピングの目的) についてあまり考える必要はなく、何を取得したいかについて考える必要があるためです。
次に、このようなことを直感的に行うことができます
$this->Employee->find('all', array(
'recursive' => 1,
'fields' => array('employee.name, employee.age')
));
または、ユーザー「Sarah」を追加した従業員を見つけたい場合。
$this->Employee->User->find('all', array(
'conditions' => array('User.name' => 'Sarah'),
'fields' => 'Employee.*',
'recursive' => 0))
これにより、従業員との連想配列が返されます。
補足として: recursive = 1 の使用は少し時代遅れです。必要なものに基づいてモデルを注入できるようにする「Containable」と呼ばれる、はるかに優れたものがあります。この問題の範囲外ですが、言及したいと思います。