Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Добрый день.
Из формы я получаю поля которые относятся к модели
Например скидка пользователя - выбирается пенсионер, ребенок и т.п.
Но в таблице пользователей таких полей нет и они не нужны там.
В конечном итоге это информация о заказе.
Удобно хранить их на момент обработки с пользователем - чтобы по алгоритмам оно там было, но перед сохранением я делаю вот так:
unset($man->prices, $man->spo_id); //fixme: А то не сохранится man при бронировке.
И это как-то выглядит неправильно.
Как я понимаю можно использовать guarded - но вроде как он не для этого задуман.
Подскажите как правильнее это сделать?
Не в сети
Добрый вечер.
Не совсем понятный вопрос.
Если вам данные нужно хранить временно.
Например, если пользователь нажал на кнопку "Купить", и эти данные надо хранить в "воздухе" до дальнейшей обработки, то лучше использовать сессию или куки.
Если их надо хранить не на стороне пользователя и на долго, то можно попробовать сохранять их в xml или json файлах.
Не в сети
В конечном итоге это информация о заказе? Так может и хранить в таблице с заказами?
Для себя я сделал вывод, что если случается подобный затык, значит надо пересмотреть логику процесса
Не в сети
Данные получаются из формы для заполнения человеков.
Потом они попадают в модель человеков.
Это вполне удобно и в целом разумно, на текущий момент.
Я не хочу переделывать эту часть сейчас.
Но перед тем как сделать man->save()
мне приходится эти данные убирать, потому что в таблице в бд нету полей для этого.
unset($man->prices, $man->spo_id); //fixme: А то не сохранится man при бронировке.
а вот это уже как то нелогично и мне не нравится.
И вопрос про это.
Не в сети
unset($man->prices, $man->spo_id); //fixme: А то не сохранится man при бронировке.
https://laravel.com/docs/5.6/eloquent#mass-assignment см. fillable
Оно?
Не в сети
Да в том то и дело, что неуверен.
И fillable и guarded подходят для выполнения задачи.
Но они предназначены для того чтобы в поле таблицы не записать что нить лишнее - опасное.
А тут ситуация как бы наоборот - в таблице нет таких полей. Но они есть в форме.
Наверно использую guarded.
Просто неужто такая вещь вообще никому не встречалась.
Не в сети