ФорумПрограммированиеPHP для идиотов → Вопросы по Zend Framework

Вопросы по Zend Framework

  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz Май 27, 2011, 7:51 п.п.

    Подскажите как передать переменные из контроллера в шаблон формы?
    Думал, что это делается по аналогии с передачей переменных во View, но видимо нет…
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz Май 27, 2011, 9:19 п.п., спустя 1 час 27 минут 17 секунд

    _view->var_name = $var_value на сколько я помню
  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz Май 27, 2011, 9:33 п.п., спустя 13 минут 57 секунд

    Да нет, так не выходит. Вот, как у меня получилось:
    class Application_Form_Post extends Zend_Form {

    protected $_cats = null;

    public function getCats()
    {
    if(null === $this->_cats) {
    $catsModel = new Application_Model_DbTable_Categories();
    $this->_cats = $catsModel->getAll();
    }

    return $this->_cats;
    }
    public function init()
    {
    foreach ($this->getCats() as $b) {
    $array[$b->id] = $b->title;
    }
    //генерация формы
    ->addMultiOptions($array)
    }


  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz Май 27, 2011, 9:47 п.п., спустя 14 минут 53 секунды

    populate() может тебе нужно?
  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz Май 27, 2011, 10:32 п.п., спустя 44 минуты 33 секунды

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

    Ещё вопрос: пишу админку, в контроллере получается несколько экшенов add, delete и т.п., я так понимаю, что плохо когда код дублируется, хоть и частично…думал сделать абстрактный класс(где будет реализован общий функционал для всех) и от него дочерние с соответствующими методами. Но это было бы хорошо для моделей, а не для контроллеров, если да, то почему?

  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz Май 27, 2011, 10:42 п.п., спустя 9 минут 54 секунды

    Мне нужно было не заполнять форму, а просто вывести варианты радиопереключателей из базы данных

    а, ну я приблизительно так и делал…
    Но это было бы хорошо для моделей, а не для контроллеров, если да, то почему?

    потому что контроллер моделью управляет, а модель данными…
    сделай маппер $model->delete($table, $id);
    вообще делай как хочешь, какая разница, правильно или не правильно, нихуя нет объективного…
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Май 27, 2011, 10:51 п.п., спустя 9 минут 10 секунд

    правильно или не правильно, нихуя нет объективного…

    ахуеть, костыль вернулся к жизни
    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz Май 28, 2011, 12:17 д.п., спустя 1 час 26 минут 11 секунд

    phpdude, та блядь, заебалсо я ))
  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz Май 31, 2011, 12:24 п.п., спустя 3 дня 12 часов 7 минут

    Я подключаю плагин фронт контроллера через application.ini:
    resources.frontController.plugins.Acl = Application_Plugin_Acl


    Лежит он у меня в
    APPLICATION_PATH "\plugins"


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

    В качестве аргумента плагин требует экземпляр класса Acl.php из моделей.

    как экземпляр этого класса передать плагину в моем случае?

    Я понимаю, что могу сделать вот так прямо в контроллере, но хочется, чтобы всё было без лишних нагромождений кода:
    $acl = new Application_Model_My_Acl();
    $front = Zend_Controller_Front::getInstance();
    $front->registerPlugin(new Application_Model_My_Plugin_Acl($acl));

    К тому же эту процедуру прийдётся повторять в каждом контроллере.
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Май 31, 2011, 1:23 п.п., спустя 58 минут 55 секунд

    если это так, то это мозгоебство
  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz Май 31, 2011, 3:56 п.п., спустя 2 часа 33 минуты 16 секунд

    Выяснил, что нужно через bootstrap подключать плагин.
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Май 31, 2011, 4:10 п.п., спустя 13 минут 32 секунды

    уже лучше
  • Animator

    Сообщения: 194 Репутация: N Группа: Кто попало

    Spritz Июль 10, 2011, 7:23 п.п., спустя 40 дней 3 часа 13 минут

    а кто нибудь знает как Zend Table запретит проверку наличия примари поля в таблице?
    аж злость берет, какое его дело есть у меня такое поле или нет!?
    постоянно для связующих таблиц приходится либо создавать свое АЙДИ или массивом передавать типа - protected $_primary = array('user_id', 'forum_id');
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz Июль 11, 2011, 11:55 д.п., спустя 16 часов 31 минуту 24 секунды

    Animator, как много нам открытий чудных готовит просвещенья дух. и опыт сын ошибок трудных, и гений парадоксов друг.
    не экономь на спичках, никогда блеать не делай таблиц без праймари кея. жизнь станет лучше и веселей. хз что у тебя за "связующие таблицы", наверняка там есть пара полей которые уникальны и могут быть объявлены как ПК.
    ιιlllιlllι унц-унц
  • Animator

    Сообщения: 194 Репутация: N Группа: Кто попало

    Spritz Июль 11, 2011, 1:42 п.п., спустя 1 час 47 минут 14 секунд

    artoodetoo, обычные таблицы… содержат множественные связи между двумя другими.
    ну так, я так и делал, не экономил, но лишнее поле быстро раздражать начало
    protected $_primary = array('user_id', 'forum_id'); в принципе эта фишка меня вполне устраивает
    просто было интересно нет ли какой заглушки

Пожалуйста, авторизуйтесь, чтобы написать комментарий!