CakePHP - посты и дети посты нужны данные пользователя - PullRequest
0 голосов
/ 09 августа 2011

У меня есть модель поста, например:

<?php
    class Post extends AppModel{
        var $name = 'Post';
        // -=> One Post hasMany Children [also of type Post, where Post.parent_id == foreignKey]:
        var $hasMany = array( 'Child' => array(            
            'className' => 'Post',
            'foreignKey' => 'parent_id',
            'conditions' => array( "Child.active" => "1" )    
        );

        var $belongsTo = array(
            'User' => array(
            'className' => 'User',
            'foreignKey' => 'dom',
            'fields' => array( "User.id" , "User.first_name" , "User.last_name" )
        )
    );

    }
?>

И post_controller вроде этого:

<?php
    class PostsController extends AppController {
        var $helpers = array ('Html','Form');
        var $name = 'Posts';

        function index() {
            $conditions = array( "Post.parent_id" => "0" , "Post.active" => "1" );
                $this->set(     'posts', $this->Post->find('all',array(  'conditions'=>$conditions   ))   );
                debug(   $this->Post->find('all',array(   'conditions'=>$conditions    )    )   );
    }
    }

?>

И я хочу, чтобы все сообщения выводились на экран. Сообщение состоит из 1 сообщения и, возможно, нескольких дочерних сообщений, которые являются просто сообщениями с соответствующим Post.parent_id.

Мне нужна информация о пользователе (Users.first_name и Users.last_name и т. Д.), Чтобы сопровождать каждое сообщение И каждую дочернюю запись в просмотре сообщений, чтобы я мог отображать каждую публикацию и ее дочерние элементы вместе с именем автора.

ВОПРОС:

Есть ли способ достичь этого?

Спасибо за любую помощь, ребята ....

1 Ответ

0 голосов
/ 09 августа 2011

Вы должны получить данные из связанных объектов: например, чтобы найти пользователя, который создал сообщение (в вашем контроллере сообщений): (тогда дайте $ user_id правильное значение :) А затем установите переменную, чтобы представление могло использовать ее:

$post = $this->Post->User->findById($user_id);
$this->set('viewVariable', $post);

Использование debug($this->Post->User->findByWhateveryouwant); Я думаю, что вы получите:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...