4

私は CakePHP を初めて使用し、かなり基本的な質問があります。と の 2 つのテーブルがbooksありusersます。 booksそしてusers習慣的な関係を持っています。上記のMVCを作成しました。ここで、ユーザーがシステムにログインしたときにbooks_users、'index' アクションの結果を見て、ユーザーが本 (つまり、エントリ) を予約できるようにしたいと考えています。使用する API は何ですか?

$this->Book->save() は本を作成していないので適切ではないようです。既存のbookとログイン中の の間の関連付けのみが必要ですuser

User$this->Book を取得し、サブ配列を手動で繰り返し、新しいサブ配列を作成し、すべてを元に戻すことを避けようとしています。もっと簡単な方法があるに違いないと確信しています。

4

3 に答える 3

1

両方の ID を含むレコードを Book または User に保存するだけで、HABTM テーブルに挿入されます。

$this->data['User']['id'] = {USER_ID};
$this->data['Book']['id'] = {BOOK_ID};

$this->Book->save($this->data);

HABTM テーブルを見ると、レコードが見つかります。

于 2013-01-16T16:14:35.803 に答える
0

アプリケーションを焼きましたか?この (基本的な) 機能は、適応するために提供されます。

要するにid、本とidユーザーの両方を取り上げます。テーブルに保存しますbooks_users

id | book_id | user_id
 1         1         1
 2         2         2
 3         2         3

関連付けが正しく設定されている場合、ユーザーをリクエストすると、すべての本が結合テーブルから返されます。

あなたのロジックは対処する必要があります-利用可能な本の数、人が一度に複数の本を予約できる場合...

http://book.cakephp.org/2.0/en/models/ Saving-your-data.html# Saving-related-model-data-habtm

例があります。

于 2013-01-10T13:36:56.997 に答える