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

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 28 мар 2024, 23:58

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: 11 сен 2012, 15:49 
Не в сети
Новичок

Зарегистрирован: 03 сен 2012, 11:38
Сообщения: 11
Здравствуйте!

У меня такая ситуация, есть основной контролер "Controller_Common":
Код:
abstract class Controller_Common extends Controller_Template {
 
    public $template = 'main';
    public $pers = Array ();

    public function before()
    {
        parent::before();
        View::set_global('title', '...');            
        View::set_global('description', '...');
         
        $user = Auth::instance()->get_user();
        $this->pers = Model::factory('Pers')->get_pers($user->id);
        View::set_global('pers', $this->pers);
    }
}

И есть второй контролер, который наследует Common, в котором иногда нужно изменять значения массива $pers:
Код:
class Controller_Testc extends Controller_Common {

    public function action_index()
    {
       
    }
 
    public function action_testm()
    {
        $content = View::factory('/_views_/_views_');

        $this->pers['pole'] + 15;

        $this->template->content = $content;
    }
}

Ну и потом в каком то views перебирается этот массив.

Но так он не хочет изменять данные, можно ли вообще это сделать?


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

Зарегистрирован: 29 авг 2012, 16:09
Сообщения: 46
дак может $this->pers['pole'] += 15;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 сен 2012, 16:05 
Не в сети
Новичок

Зарегистрирован: 03 сен 2012, 11:38
Сообщения: 11
evgentus писал(а):
дак может $this->pers['pole'] += 15;

Нет, так тоже не работает(

Я уже и метот для Common писал:
Код:
public function change_pers ($param, $value)
    {
        $this->pers['' . $param . ''] = $value;
    }

Но так тоже не работает


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 сен 2012, 16:15 
Не в сети
Новичок

Зарегистрирован: 03 сен 2012, 11:38
Сообщения: 11
Получилось изменить данные когда после изменения значения, снова объявляешь $pers глобальной переменной, в общем так:
Код:
$this->pers['level'] = 15;
        View::set_global('pers', $this->pers);

Получается когда создаешь глобальную переменную, она как то дублируется и работаешь уже с ней.

Это правильно так изменять данные?:)


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

Зарегистрирован: 16 апр 2012, 19:44
Сообщения: 113
замените в before контроллера common
Код:
View::set_global('pers', $this->pers); 

на
Код:
View::bind_global('pers', $this->pers);


тогда
Код:
$this->pers[] =$value;
будет работать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 сен 2012, 18:06 
Не в сети
Новичок

Зарегистрирован: 03 сен 2012, 11:38
Сообщения: 11
Спасибо большое, забыл что биндлить можно)


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

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


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

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


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

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