Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Подробное описание Статей и Новостей выводятся по разному
http://forum.kohanaframework.su/viewtopic.php?f=33&t=125
Страница 1 из 1

Автор:  pocherk [ 14 апр 2012, 10:14 ]
Заголовок сообщения:  Подробное описание Статей и Новостей выводятся по разному

Есть 2 таблицы - статьи (article) и новости(news). C article проблем нет - выводятся и списком и подробное описание.
Код:
class Model_Article extends Model
{
    protected $_tableArticles = 'article';
 
    public function get_all()
    {
        $sql = "SELECT * FROM ". $this->_tableArticles." ORDER BY ddate DESC";
        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)
                         ->execute();

        $result = $query->as_array();

        if($result)
            return $result[0];
        else
            return FALSE;
    }
   
}


Вид для подробного вывода статьи на экран
Код:
<?php 
if($article)
{
    echo "<h1 class='art'>".$article['articleName']."</h1>";
    echo $article['full_text'];
}
else{
    echo "<div style='padding:10px; margin-bottom:10px;'>Статья не найдена или не существует</div>";
}


Делаю аналогично модель для новостей
Код:
class Model_Newska extends Model
{
    protected $_tableNews = 'news';
 
    public function get_all()
    {
        $sql = "SELECT * FROM ". $this->_tableNews." ORDER BY date DESC";
        return DB::query(Database::SELECT, $sql)
                   ->execute();
    }
   
     public function get_newska($id = '')
    {
        $sql = "SELECT * FROM ". $this->_tableNews ." WHERE id = '$id'";
        $query = DB::query(Database::SELECT, $sql)
                         ->execute();
 
        $result = $query->as_array();
 
        if($result)
            return $result[0];
        else
            return FALSE;
    }
   
}

Списком новости выводятся нормально, а когда пытаюсь вывести подробное описание, то пишет сообщение из вида
"Статья не найдена или не существует...". SQL-запрос правильный и новость с таким id существует

Код:
if($newska)
{
    echo "<h1 class='art'>".$newska['newsName']."</h1>";
    echo $newska['content'];
}
else{
    echo "<div>Статья не найдена или не существует...</div>";
}


Роуты такие:
Код:
Route::set('newska', 'newska/<id>', array('id' => '[0-9]+'))
   ->defaults(array(
      'controller' => 'news',
      'action'     => 'newska',      
   ));

Route::set('articles', '<articles>/<id>', array('id' => '[0-9]+'))
   ->defaults(array(
      'controller' => 'articles',
      'action'     => 'article',      
   ));


Ведь для Статей и Новостей Model, Controler и Vew делал одинаково. Голову сломал - где собака порылась?

Автор:  admin [ 14 апр 2012, 14:54 ]
Заголовок сообщения:  Re: Подробное описание Статей и Новостей выводятся по разном

Массив новости в вид как передаете ?
Код:
$content = View::factory('/pages/newska')
                        ->bind('newska', $newska);



Что-то типа такого ? И посмотрите в контроллере, что приходит из модели. Тем же банальным print_r($newska);

P.S. Для таких почти одинаковых действий, если их много, лучше использовать так называемую CRUD - модель.

Автор:  Akella [ 14 апр 2012, 17:09 ]
Заголовок сообщения:  Re: Подробное описание Статей и Новостей выводятся по разном

Проверяйте. Что приходит, что уходит. Чего гадать-то ? Это нормальная ситуация.

Автор:  pocherk [ 14 апр 2012, 17:43 ]
Заголовок сообщения:  Re: Подробное описание Статей и Новостей выводятся по разном

Нашел ошибку в контролере - результат из модели неправильно назвал
Код:
было 
$artical = Model::factory('Newska')->get_newska($id);   

надо     
$newska = Model::factory('Newska')->get_newska($id);       


А насчет CRUD - я в Kohana новичек... Но спасибо за наводку

Автор:  admin [ 14 апр 2012, 18:24 ]
Заголовок сообщения:  Re: Подробное описание Статей и Новостей выводятся по разном

Да это не только в Кохане. Просто видите, у вас фактически одинаковые модели, меняется только название таблицы. Можно создать такую модель, в которую просто передавать нужное название таблицы.

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/