From 1c2964f7b63fefcffdd2c5d63a2e699abfb57a95 Mon Sep 17 00:00:00 2001 From: Alexander Sterpu Date: Mon, 31 Aug 2015 01:31:58 +0300 Subject: [PATCH] Update FormItem.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Описание бага: В конструктор произвольного элемента формы не передаются параметры, в следствие чего произвольные элементы формы не получают никаких данных из модели Пример: ...->form(function () { FormItem::approval('approved_at', 'Approved At')->default(time()); }); Попытка получить данные из класса данного элемента: use SleepingOwl\Admin\Models\Form\FormItem\Timestamp; class Approval extends Timestamp{ public function render() { $instance = Admin::instance()->formBuilder->getModel(); if((new \DateTime($instance->approved_at)) < (new \DateTime('2000-10-01'))) return 'closed'; return parent::render(); // Вернется некорректный html-код. Атрибуты $this->name, $this->label равны NULL, т.к. в конструктор они не передались. } } Данный фикс исправляет эту проблему --- src/SleepingOwl/Admin/Models/Form/FormItem.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/SleepingOwl/Admin/Models/Form/FormItem.php b/src/SleepingOwl/Admin/Models/Form/FormItem.php index 74f55128..ae80d324 100644 --- a/src/SleepingOwl/Admin/Models/Form/FormItem.php +++ b/src/SleepingOwl/Admin/Models/Form/FormItem.php @@ -63,6 +63,7 @@ public static function __callStatic($method, $params) } else { $formItem = App::make($handler); + $formItem->__construct(Arr::get($params, 0, null), Arr::get($params, 1, '')); } } else { @@ -91,4 +92,4 @@ protected static function getHandler($method) return Arr::get(static::$handlers, $method, null); } -} \ No newline at end of file +}