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

Подскажите, как найти <id> в массив ничего не приходит
http://forum.kohanaframework.su/viewtopic.php?f=31&t=719
Страница 1 из 1

Автор:  mackay [ 05 авг 2013, 17:56 ]
Заголовок сообщения:  Подскажите, как найти <id> в массив ничего не приходит

Есть роутер
Код:
Route::set('ubuntu', '(ubuntu/read(/<id>))')
   ->defaults(array(
      'controller' => 'ubuntu',
      'action'     => 'read',
   ));


теперь сам экшн

Код:
   public function action_read($uri = NULL)
      {
      
            
         $data = array();
         
            $selnew = new Model_News();
            $data['materials'] = $selnew->getcat($uri);
            var_dump($data);

         $this->template->content = View::factory('ubuntu_read',$data);
      }


в екшн передаются данные с роута, после я сравниваю этот <id> c id из базы данных и делаю выборку этого поля,

вот модель выборки из базы

Код:
   protected $_table_name = 'news';
   
   
   public function getcat($uri){
   
      return DB::SELECT()
      ->from($this->_table_name)
      ->where('id','=',$uri)
      ->execute()
      ->as_array();
      
   }

и еще, в екшене передаю $uri = NULL, если убери null кохана выводит ошибку в файле контроллера.
Подскажите, как узнать id из строки, site.com/ubuntu/read/здесь айди, который должен сравнивать.
Расписал как смог, пожалуйста подскажите, что делаю не так.

Автор:  WinterSilence [ 05 авг 2013, 18:08 ]
Заголовок сообщения:  Re: Подскажите, как найти <id> в массив ничего не приходит

руководство до конца дочитай, а потом вопросы тупые задавай.

Цитата:
и еще, в екшене передаю $uri = NULL, если убери null кохана выводит ошибку в файле контроллера.

но судя по этому, тебе вначале нужно руководство по php прочесть

Автор:  slider23 [ 06 авг 2013, 09:10 ]
Заголовок сообщения:  Re: Подскажите, как найти <id> в массив ничего не приходит

Цитата:
public function action_read($uri = NULL)

Покажите, где вы прочитали, что надо делать так ?

Параметры урла получают в экшне при помощи $this->request->param("id"); , например.

Автор:  sasha2020 [ 06 авг 2013, 23:45 ]
Заголовок сообщения:  Re: Подскажите, как найти <id> в массив ничего не приходит

Цитата:
public function action_read($uri = NULL)


В CakePHP так id передается, Kohana это совсем другой фраймворк

Автор:  Sergey [ 07 авг 2013, 01:15 ]
Заголовок сообщения:  Re: Подскажите, как найти <id> в массив ничего не приходит

Привет, mackay!

Так можно было до v3.0. Сейчас всё немного изменилось. Тебе нужно изменить роут:

Код:
Route::set('ubuntu''(ubuntu/read(/<id>(/<uri>)))')
   ->
defaults(array(
      
'controller' => 'ubuntu',
      
'action'     => 'read',
      
'uri'          => NULL,
   )); 


И соответственно:
Код:
public function action_read()
{

    
$data = array();
    
$selnew = new Model_News();
    
$data['materials'] = $selnew->getcat($this->request->param('uri'));
    
var_dump($data);

    
$this->template->content View::factory('ubuntu_read',$data);


Правда зачем тебе тут $id и как ты его хотел применять совершенно не понятно.
И покажи пожалуйста твой метод getcat

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