У меня есть интерфейс Приложение/форма vue, которая отправляет данные обратно в мой бэкэнд laravel - у меня есть контроллер, который проверяет и сохраняет запрос (в данный момент я не ищу отзывов об этой архитектуре, если только она действительно не решит проблему - это задача на другой день... )
Я добавил столбец json под названием «custom_redeem_fields»
Для контекста: он обеспечивает большую гибкость и принимает пары ключ/значение для использования в другом поле называемый «custom_redeem_instructions», который содержит текст с разделителями для каждого из ключей из «custom_redeem_fields», хотя я бы предпочел не определять эти ключи статически, потому что весь смысл в том, чтобы иметь возможность добавлять новые ключи по своему желанию. Таким образом, custom_redeem_instructions будет читать что-то вроде «пожалуйста, посетите {•URL•} и введите код {•CODE•}...», и эти значения будут взяты из поля json custom_redeem_fields.
В модели у меня есть «custom_redeem_fields» в заполняемом массиве, а также установлено, что их можно привести к json.
Код: Выделить всё
protected $fillable = ['custom_redeem_fields'];
protected $casts = ['custom_redeem_fields' => 'json'];
Код: Выделить всё
$validatedData = $request->validate([
'title' => 'sometimes|required|max:255',
'text' => 'sometimes|required_unless:redeem_type,9|max:255',
'custom_redeem_fields.email' => 'sometimes|email',
'custom_redeem_fields.phone' => ['sometimes', new ValidPhone],
'custom_redeem_fields.code' => 'sometimes',
'custom_redeem_fields.url' => 'sometimes|url'
]);
$ticket = Ticket::find($id)
$ticket->update($validatedData);
Код: Выделить всё
[
"title" => "Monty Pythons Flying Circus"
"text" => "Monty Pythons Flying Circus is a British surreal sketch comedy series created by and starring the comedy group Monty Python, consisting of Graham Chapman, ..."
"custom_redeem_fields" => [
"email" => "bob@example.com",
"phone" => "503.555.5555",
"code" => "1xoicvjq",
"url" => "https://example.com/"
]
]
Код: Выделить всё
"custom_redeem_fields" => ["email" => "pat@example.com"]настраиваемые поля погашения возвращают:
Код: Выделить всё
"custom_redeem_fields" => ["email" => "pat@example.com"]а не:
Код: Выделить всё
"custom_redeem_fields" => ["email" => "pat@example.com", "phone" => "503.555.5555", "code" => "1xoicvjq", "url" => "https://example.com/"]Код: Выделить всё
custom_redeem_fields.urlКод: Выделить всё
custom_redeem_fields->urlБудем благодарны за любую помощь.
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/621 ... ver-writin
Мобильная версия