Как сохранить back-end данные в две таблицы в October cms

У меня есть две таблицы Brands и BrandTimings, я хочу сохранить бренд с указанием времени получения и доставки, и у меня есть форма, которую я отправляю со всеми данными. Я получаю сообщение об ошибке, я понимаю ошибку, но не знаю, как назначить самовывоз и время доставки в переменную и удалите их, а затем, используя afterSave (), сохраните их в BrandTimings с новым идентификатором бренда, я пробовал beforeSave (), и я не мог понять, как это сделать, поскольку октябрьская документация cms не имеет примера,

Столбец не найден: 1054 Неизвестный столбец 'pickup_time' в 'списке полей' (SQL: вставить в offline_mall_brands (name, id, pickup_time, delivery_time, slug, website, description, updated_at, created_at) значения (ASDE, 1, ["0" , "1"], ["2", "3"], zip-jet,,,, 2020-06-04 10:19:17, 2020-06-04 10:19:17)) "в строке 664 из /home/vagrant/code/cml/vendor/laravel/framework/src/Illuminate/Database/Connection.php

Бренды

id     name      location
1      Inspire   Lacer

BrandTimings

id     brand_id      pickup_time     delivery_time
1      1             08:00           15:00 
1      1             09:00           16:00
1      1             10:00           17:00
1      1             11:00           18:00  

person Danish    schedule 04.06.2020    source источник


Ответы (1)


О, я вижу, что происходит. Brands не имеет времени доставки, но BrandTimings имеет. Один из способов, которым это сработает, - это ваш php. Теперь вы не упоминаете, связаны ли эти модели друг с другом, поэтому я не буду так писать. И вы не показываете, как вы пытаетесь его спасти сейчас, поэтому я собираюсь это исправить. Вот пример:

public function onSaveBrandTimings() {

    // Get inputs and you would validate them as well
    $name = Input::get('name');
    $location = Input::get('location');
    $pickup_time = Input::get('pickup_time');
    $delivery_time = Input::get('deliver_time');

    if ($validates == true) {

        // Create Brand
        $brand = New Brands;// Create brand instance but won't have id
        $brand->name = $name;
        $brand->location = $location;
        $brand->save(); // Saving the brand will fill in the ID in the instance

        // Create BrandTimings
        $brandTimings = new BrandTimings;
        $brandTimings->brand_id = $brand->id;
        $brandTimings->pickup_time = $pickup_time;
        $brandTimings->delivery_time = $delivery_time;
        $brandTimings->save();

        // Return a statment or a partial update or a redirect
        return 'Success'

    } else {

        return 'Failed'

    }
}
person Pettis Brandon    schedule 04.06.2020
comment
извините за ошибку, это был тип .. имя таблицы такое же не заглавное и т. д. - person Danish; 05.06.2020
comment
@Danish обновил мой ответ, снова посмотрев на проблему. - person Pettis Brandon; 05.06.2020