Я создаю виджет Yii для проекта и столкнулся с проблемой, хотя и соблюдаю все соглашения об именах.
Получил ошибку
include(RecentCommentsWidget.php): failed to open stream: No such file or directory
Я включил путь application.components.*
на main.php правильно, но я не знаю, почему это не обнаруживает.
recentCommentsWidget.php сохраняется в Просмотры каталог внутри компоненты каталог.
Чего-то не хватает?
РЕДАКТИРОВАТЬ: Вот класс RecentCommentsWidget (путь => приложения / компоненты)
class RecentCommentsWidget extends CWidget
{
private $_comments;
public $displayLimit = 5;
public $projectId = null;
public function init()
{
if(null !== $this->projectId)
$this->_comments = Comment::model()->with(array(
'issue'=>array('condition'=>'project_id='.$this->projectId)))->recent($this->displayLimit)->findAll();
else
$this->_comments = Comment::model()->recent($this->displayLimit)->findAll();
}
public function getData()
{
return $this->_comments;
}
public function run()
{
// this method is called by CController::endWidget()
$this->render('recentCommentsWidget');
}
}
Файл RecentCommentsWidget (путь => приложение / компоненты / представления)
<ul>
<?php foreach($this->getData() as $comment): ?>
<div class="author">
<?php echo $comment->author->username; ?> added a comment.
</div>
<div class="issue">
<?php echo CHtml::link(CHtml::encode($comment->issue->name),array('issue/view', 'id'=>$comment->issue->id)); ?>
</div>
<?php endforeach; ?>
</ul>
и вот как я называю это Просмотры
<?php $this->widget('RecentCommentsWidget'); ?>
РЕШИТЬ: Я написал recentComments.php вместо recentCommentsWidget.php
Задача ещё не решена.
Других решений пока нет …