Здравствуйте, делал всё по мануалке, всё хорошо работало, после решил переделать под собственные нужды, не получилось, откатил изменения назад, на образец, тоже почему то не работает. Сравнил с образцом на сайте, вроде всё одинаково. у меня Kohana 3.3.
Контроллер Page:
Код:
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Page extends Controller_Common {
public function action_index()
{
$articles = array();
$content = View::factory('/pages/Show')
->bind('articles', $articles);
$articles = Model::factory('Article')->get_all();
$this->template->content = $content;
}
}
Контроллер Articles
Код:
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Articles extends Controller_Common {
public function action_index()
{
$content = View::factory('/pages/Articles');
$this->template->content = $content;
}
public function action_article()
{
$id = $this->request->param('id');
$content = View::factory('/pages/Article')
->bind('article', $article)
->bind('comments', $comments);
$article = Model::factory('Article')->get_article($id);
$comments_url = 'comments/' . $id;
$comments = Request::factory($comments_url)->execute();
$this->template->content = $content;
}
}
Модель Articles
Код:
<?php defined('SYSPATH') or die('No direct script access.');
class Model_Article extends Model
{
protected $_tableArticles = 'articles';
public function get_all()
{
$sql = "SELECT * FROM ".$this->_tableArticles;
return DB::query(Database::SELECT, $sql)
->execute();
}
public function get_article($id = '')
{
$sql = "SELECT * FROM {$this->_tableArticles} WHERE `id` = :id";
$query = DB::query(Database::SELECT, $sql, FALSE)
->param(':id', (int)$id)
->execute();
$result = $query->as_array();
if($result)
return $result[0];
else
return FALSE;
}
}
Вид Show
Код:
<h3>Это главная страница</h3>
<br />
<?php foreach($articles as $article): ?>
<div style="padding:10px; margin-bottom:10px; border-bottom:#333 2px solid;">
<strong><?php echo $article['title']; ?></strong><br />
<i>Автор: <?php echo $article['author']; ?></i>
<i>Дата публикации: <?php echo $article['date']; ?></i><br /><br />
<p><?php echo $article['content_short']; ?></p>
<p style="text-align:right; text-decoration:underline;">
<a href="<?php echo URL::site('articles/'. $article['id'] .'-'. $article['alt_title']); ?>">Подробнее</a>
</p>
</div>
<?php endforeach; ?>
Вид Article
Код:
<?php if($article): ?>
<div style="padding:10px; margin-bottom:10px; border-bottom:#333 2px solid;">
<strong><?php echo $article['title']; ?></strong><br />
<i>Автор: <?php echo $article['author']; ?></i> /
<i>Дата публикации: <?php echo $article['date']; ?></i><br /><br />
<p><?php echo $article['content_full']; ?></p>
</div>
<?php echo $comments; ?>
<?php else: ?>
<div style="padding:10px; margin-bottom:10px;">
Статья не найдена или не существует
</div>
<?php endif; ?>
Все Роуты(Идут именно в таком порядке)
Код:
Route::set('static', '<action>(/<id>)', array('action' => 'about|contacts'))
->defaults(array(
'controller' => 'static',
));
Route::set('admin', 'admin(/<controller>(/<action>(/<id>)))')
->defaults(array(
'directory' => 'admin',
'controller' => 'main',
'action' => 'index',
));
Route::set('comments', 'comments/<id>', array('id' => '.+'))
->defaults(array(
'controller' => 'comments',
'action' => 'index',
));
Route::set('articles', '<articles>/<id>-<altname>', array('id' => '[0-9]+'), array('altname' => '.+'))
->defaults(array(
'controller' => 'articles',
'action' => 'article',
));
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'page',
'action' => 'index',
));
P.S. Подскажите, почему не пишет логи в файл? Если появляется ошибка он показывает(всегда только это):
ErrorException [ 8 ]: Array to string conversion ~ SYSPATH/classes/Kohana/Log/Writer.php [ 81 ]
Права проставлены (на папку логов и рекурсивно, на все вложенные файлы и папки): 777.