0

そのため、CakePHP で小さなプロジェクトを開始したばかりで、以下に対処する最善の方法がわかりません。
ユーザー、投稿、および投稿ユーザーがあるとします。投稿者。ユーザーは Posts との関係を通じて hasMany を持っています。
PostsUser は、投稿を読んだユーザーを表します (userId、postId、および作成日を持ちます)。

投稿のリストで、PostsController の「markRead」メソッドへのリンクをクリックして、投稿を既読としてマークできるようにしたいと考えています。

最後に、PostController に新しい PostsUser を保存するにはどうすればよいかという質問です。$uses の追加とこれへの PostsUser の追加について読みましたが、うまくいかないようです。

第二に、これは物事を行う正しい方法ですか?posts/markRead/14 の URL を持つのはいいようですが、私はこれを変更したいと思います。

4

1 に答える 1

1

Controller::uses を使用することは、悪い習慣と見なされます。関連付けられたモデルには、関連付けを通じてアクセスする必要があります。

PostsController::markAsRead() メソッド内で、 ClassRegistry::init('PostsUser') を使用してモデルのインスタンスを取得し、そのオブジェクトからメソッドを呼び出すことができます。

またはController::loadModel()を使用します。

リンクの名前付けだけの場合は、PostsUsersController::markAsRead() を使用し、ルーターを使用して /posts/markAsRead/:id を PostsUsersController にルーティングすることもできます。

于 2012-06-06T18:55:42.617 に答える