0

特定のユーザーの投稿を (UsersController で) 検索しようとすると、次のエラーが表示されます。プロフィール機能はこちら

public function profile($id = null) {
    $this->User->id = $id;
    if (!$this->User->exists()) {  //if the user doesn't exist while on view.ctp, throw error message
        throw new NotFoundException(__('Invalid user'));
    }
    $this->set('user', $this->User->read(null, $id)); //sends info to view.ctp. 
    $conditions = array('posts.user_id' => $id);
    $this->set('posts', $this->User->Posts->find('all',array('conditions' => $conditions))); 

これがクエリです。

 SQL Query: SELECT `Post`.`id`, `Post`.`title`, `Post`.`body`, `Post`.`created`, `Post`.`modified`, `Post`.`user_id` FROM `blog`.`posts` AS `Post` WHERE `posts`.`user_id` = 1

編集-クエリが機能するようになりましたが、別の問題が発生しています

私の profile.ctp ページで、次のエラーが表示されます

Invalid argument supplied for foreach() [APP/View/Users/profile.ctp, line 35]

35行目です

 <?php foreach ($posts as $post): ?>

これは、UsersController のプロファイル関数からのステートメントです。

$this->set('posts', $this->User->Posts->find('all',array('conditions' => $conditions)));
4

1 に答える 1

2

Postモデルがに属し、 多くのUserを持っていると仮定して、コードを次のように変更します。User Post

$this->set('posts', $this->User->Post->find('all',array('conditions' => $conditions)));
于 2012-08-02T03:04:45.593 に答える