12
Мар
2017

Yii2, как обработать с формы post массив данных для сохранения в бд?

Всем здрасте!

Есть Модель + у меня связь с таблицами.

Таблица profile && work_schedule

Есть такая таблица work_schedule, есть такие поля (внизу таблица), с формы я принимаю данные они должны записаться в work_schedule, и id от work_schedule должно записаться в в таблицу profile -> schedule_id. И я не могу понять как мне обработать саму форму, что бы принять Дни недели и время???

'id' => 1,
'week' => 'ПН',
'start_time' => '08.00',
'end_time' => '17.00',
'break_start' => '12.00',
'break_start' => '13.00',
'is_weekend' => false,

В Profile модели у меня хранится дни недели виде массива и публичные свойства,а также updateProfile(), где через контроллер принимаю и отправляю в модель.

class Profile extends ActiveRecord

{ public $status_week; public $times; public $has_break; public $work_start; public $work_end; public $break_start; public $break_end; public $gallery;

public static function weeks()
{
    return [1 => 'ПН', 2 => 'ВТ', 3 => 'СР', 4 => 'ЧТ', 5 => 'ПТ', 6 => 'СБ', 7 => 'ВС'];
}

}

Сама форма в вьюхе

<?php foreach ($weeks as $k => $v) : ?>
    <?php $form = ActiveForm::begin(); ?>

         <?= $form->field($model, "[$k]work_start")-
        >widget(TimePicker::classname(),
                        [
                            'value' => '00:00',
                            'pluginOptions' => [
                                'showMeridian' => false,
                            ]
                        ])->label('');
                    ?>

    <?php $form = ActiveForm::end() ?>
<?php endforeach; ?>

В форме я раскладываю foreach, и получается что для каждого дня есть свое время и перерыв field($model, '[$k]work_start'), вот только я не могу понять как получить сам массив что бы сохранить в бд [$k]work_start - ПН|09:00, принимаю в контроллере и в модели происходит сам updateProfile.

делаю var_dump и получаю такой массив

[
'_csrf' => 'ajI4RHc0RUkeVgABH3kPej9CVSAaTXYgBn0VLTVlIiAhA3ocO2EfCw=='
'Profile' => [
    'status_week' => '1'
    ПН => [
        'work_start' => '09:00'
        'work_end' => '18:00'
        'break_start' => '12:00'
        'break_end' => '13:00'
    ]
    'has_break' => '1'
]
]

Источник: https://ru.stackoverflow.com/questions/638580/yii2-%D0%BA%D0%B0%D0%BA-%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C-%D1%81-%D1%84%D0%BE%D1%80%D0%BC%D1%8B-post-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B2-%D0%B1%D0%B4

Share

Тебе может это понравится...