Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 6/7/8/9/10 » Две формы и два SUBMITа на одной странице. » 10.01.2021 00:26:31

Спасибо вам за исчерпывающие ответы. Теперь по подробнее....
То, что я делаю, это мое хобби и мой домашний проект. Программирование это не мой заработок. От сюда и такие глупые вопросы.
Как вы думаете, стоит ли заморочиться использовать JS как Front-End ради "плавной" работы страниц, если проект планируется порядка 20-30 страниц?
Если да, то какой фреймворк лучше использовать? Что скажете на счет Vue?
Спасибо!!!

#2 Re: Laravel 6/7/8/9/10 » Две формы и два SUBMITа на одной странице. » 30.12.2020 23:33:17

После AJAX запроса (удаление выбранных записей) нужно обновить страницу.

В контроллере пишу:

return redirect(route('account.exceptions'));

Стандартный способ не подходит. Почему так происходит и как решить эту задачу?

#3 Re: Laravel 6/7/8/9/10 » Две формы и два SUBMITа на одной странице. » 30.12.2020 19:59:58

И еще вопрос. Как мне поступить с валидацией данных. Если я проверяю только одну форму, все Ок. Но если я начинаю проверять обе формы, то происходит конфликт.

#4 Re: Laravel 6/7/8/9/10 » Две формы и два SUBMITа на одной странице. » 30.12.2020 17:25:35

Вопрос в общем в следующем... Не получается указать имя маршрута в URL. Только если в ручную прописываю путь. Каким образом можно указать имя маршрута?

#5 Laravel 6/7/8/9/10 » Две формы и два SUBMITа на одной странице. » 30.12.2020 01:06:25

Matroskin
Ответов: 7

Каждый SUBMIT обрабатывает свою форму. Я так понимаю, что здесь нужно использовать уже JS.
Правильно ли я понимаю, что данные из формы(при помощи обработчика событий) нужно отправлять в контроллер и там уже привычным способом их обрабатывать?

$(document).ready(function () {
    $('#exceptionsform').on('submit', function (e) {
        e.preventDefault();

        $.ajax({
            type: 'POST',
            cache: false,
            url: 'exceptions/destroy',
            data: $('#exceptionsform').serialize(),
            success: function (data) {
                if (data.result) {
                    $('#senderror').hide();
                    $('#sendmessage').show();
                } else {
                    $('#senderror').show();
                    $('#sendmessage').hide();
                }
            },
            error: function () {
                $('#senderror').show();
                $('#sendmessage').hide();
            }
        });
    });
});

Это обработчик для одной пока еще кнопки. Не получается прописать имя роутера. Вот сам роутер:

Route::post('exceptions/destroy', 'Account\Exceptions_servicesController@destroy')->name('exceptions.destroy')->middleware('auth');

#6 Re: Laravel 6/7/8/9/10 » Множественная запись » 02.11.2020 22:24:25

Владислав, скажите пожалуйста... А такое поведение timestamps нормальное? При такой записи нужно вручную их записывать? Или я все же делаю что-то не правильно?

Добавьте в $accruals[] кличи таймстампов, и fillable в модели Accrual

Сделал как вы сказали. теперь все на месте.

#7 Re: Laravel 6/7/8/9/10 » Множественная запись » 01.11.2020 21:46:17

Большое спасибо Владислав. Вы очень помогли мне с решением этой задачи. Правда заметил, что при массовом заполнении поля timestamp не заполняются. Как мне поправить это если это требует ситуация. или подскажите направление где искать ответ.   smile smile smile

#8 Laravel 6/7/8/9/10 » Множественная запись » 31.10.2020 19:25:08

Matroskin
Ответов: 5

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

(
['services_id' => $data[$row]['id']],
['date' => $data[$row]['date']],
['accruals' => $data[$row]['accruals']]
)

В БД записываю так:

        $accrual->fill([
            'services_id' => $data[0]['id'], 'date' => $data[0]['date'], 'accruals' => $data[0]['accruals']
            ]
        ) ->save();

Но это всего лишь одна запись из формы. А их может быть порядка 10-15.
Не могу понять как записывать в БД сразу все записи из формы.
В модели прописал разрешение на множественную запись

protected $fillable = ['services_id', 'date', 'accruals'];

Подвал раздела