Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 16 окт 2019, 13:24

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 14 апр 2012, 10:14 
Не в сети
Зеленый

Зарегистрирован: 04 апр 2012, 17:06
Сообщения: 3
Есть 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 делал одинаково. Голову сломал - где собака порылась?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 апр 2012, 14:54 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Массив новости в вид как передаете ?
Код:
$content = View::factory('/pages/newska')
                        ->bind('newska', $newska);



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

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

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 апр 2012, 17:09 
Не в сети
Бывалый

Зарегистрирован: 12 фев 2012, 21:19
Сообщения: 32
Проверяйте. Что приходит, что уходит. Чего гадать-то ? Это нормальная ситуация.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 апр 2012, 17:43 
Не в сети
Зеленый

Зарегистрирован: 04 апр 2012, 17:06
Сообщения: 3
Нашел ошибку в контролере - результат из модели неправильно назвал
Код:
было 
$artical = Model::factory('Newska')->get_newska($id);   

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


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 апр 2012, 18:24 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Да это не только в Кохане. Просто видите, у вас фактически одинаковые модели, меняется только название таблицы. Можно создать такую модель, в которую просто передавать нужное название таблицы.

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group