запутался с CActiveDataProvider

Вечер добрый!

новичек в yii и ооп вцелом, разбираю по косточкам тестовый блог

имеется таблица tbl_post(с описательными характеристиками постов, айди, автор, время, текст и код категории) + к ней подвязываю tbl_category (не из примера, создал сам, самую простую с полями id и name идентификатор категории (уникальный праймари кей инкрементный) и имя категории (уникальный ключик), поначалу мучался со связываниями, но врезультате вымучил следующие связи(с помощью Gii):

Post

return array(

		'category' => array(self::HAS_ONE, 'Category', 'id'),


		'comments' => array(self::HAS_MANY, 'Comment', 'post_id'),


		'author' => array(self::BELONGS_TO, 'User', 'author_id'),


	);

Category

public function relations()

{





	return array(


		'id0' => array(self::BELONGS_TO, 'Post', 'id'),


	);


}

Что я хочу от вида:

в post view хочу вывести данные по посту + по категории к которой он относится, так как связи настроены, то

public function actionIndex()

{


	$dataProvider=new CActiveDataProvider('Post');


	$this->render('index',array(


		'dataProvider'=>$dataProvider,


	));


}

если я всё праввильно понимаю - нужную мне инфу содержит в себе dataProvider

результат:

ID: 1

Title: Welcome!

Content: This blog system is developed using Yii. It is meant to demonstrate how to use Yii to build a complete real-world application. Complete source code may be found in the Yii releases. Feel free to try this system by writing new posts and posting comments.

Tags: yii, blog

Status: 2

Create Time: 1230952187

Update Time: 1230952187

Category: Новая категория - есть вывод категории, которая мне нужна

А теперь загадка, в тестовом примере у меня в наличии два уже готовых поста, с ними проблем нет, проблема начинается, когда я добавляю третий пост

public function actionCreate()


{


	$model=new Post;





	if(isset($_POST['Post']))


	{


		$model->attributes=$_POST['Post'];


		if($model->save())


			$this->redirect(array('view','id'=>$model->id));


	}


           


            $Criteria= new CDbCriteria;


            $Criteria->select='name';


            $Criteria->order='name';


            $Cats = Category::model()->findAll($Criteria);


            


	$this->render('create',array(


		'model'=>$model,


                    'categories'=>$Cats,


	));


}

‘categories’=>$Cats, = создаю для того, чтобы в вьюхе криэйта отобразить селект к какой именно категории я хочу чтобы вязался новый пост

тут многое еще не допилено, например оно не ставит время создания поста + я передаю категорию текстом, а в базу должен писать ключ категории - это пол беды, для теста я это всё вбил руками прямо в базу и собственно проблема:

как только появляется третий пост, вид даёт ошибку - Trying to get property of non-object

и строка с ошибкой = <?php echo CHtml::encode($data->category->name); ?>

вопрос: почему, когда постов 2 - ошибки нет, добавляю новый - даёт ошибку, пробовал третий пост делать точной копией второго или первого (единственная разница ключ ессно) - всеравно ошибка

помогите плз, не могу понять где я чего не дочитал, где я чего неправильно понял или к чему я морально не созрел, но я понял, что когда я в рендер передал dataProvider то я передал данные модели Post + данные подвязанные к ней из модели Category и вот уже окончательно запутался почему в одном случае выводится инфа бесприкословно, а в другом - не выводится

сам запутался - сам разпутался, всё банально и просто и второй раз ловлю себя на связях в таблицах mysql, всё заработало

причина: первый раз создал связи на основе primary ключей, оно поработало до первого пересечения(повторения категории, тоесть до потери уникальности записи), сделал связь на основе поля post_id в таблице постов (которое есть ключем, но не есть уникальным ключем) и поля id таблицы category (вот это поле уже есть уникальным) - теперь добавляй не хочу постов

этой инфы нет в руководстве, так как она вцелом фрейсворка не касается, подразумевается, что пришедший уже это четко знает, понимает и осознаёт, инфа полезна для тех, кто уходит от процедурного программирования и не работал с скажем MS SQL