Прямых методов нет, то ты можешь реализовать их таким образом самостоятельно
class Comment extends CActiveRecord
{
public function setUser(\User $user = null)
{
if (is_null($user))
{
$this->user_id = null;
} else
{
$this->user_id = $user->id;
}
}
}
$comment = new Comment;
$comment->user = $user;
// или
$comment->setUser($user);
На самом деле схема значительно более сложная, чем просто написать setter для свойства user.
Что делать, если поменять свойство user_id через которое вычисляется user - его же вроде опять надо подгрузить из базы?
Будут ли идентичными сущности $user для двух разных комментариев с одинаковым user_id?
Что делать, если $user ещё не был сохранён ? Не давать присваивать $comment->setUser($user) или делать автоматическое сохранение цепочкой (сначала $user, затем $comment) ?
Много много много вопросов.
В Yii2 такие сложности не реализованы, поскольку универсальное всеохватывающее решение как в Doctrina или PropelORM работают очень медленно и жрут память. Там как раз иногда приходится запрещать навороченную логику.