2017-02-21 17 views
-2

Q & A: Я хотел бы установить некоторые значения по умолчанию, чтобы избежать пустых полей.Laravel - заполнить массив w/значения по умолчанию | POST метод

  • Я хочу, чтобы установить значения по умолчанию в контроллере а не HTML
  • Форма заполнители не работают заполненное поле
  • Я хочу еще быть в состоянии выдает ошибку, если некоторые из значение ключа отсутствует

ответ

1

Я нашел только правильный способ acomplish это с помощью слияния массива:

array_merge($requested, $default) 
  • Ключи от первого массива будут сохранены! Вы должны проверить документ php.
  • Далее продолжить (создать & redirect).
  • Неопределенные ключи выдают ошибки, также вы должны проверить 'strict' => false в config/database.php, если у вас возникли проблемы.

{NameController.php}

$default = array(['image' => 'http://placehold.it/250x225']); 
$request = request(['user' => request('user')]); 

$input = array_merge($request, $default); 

{Model}::create($input); 

return redirect('{view}'); 

  • ЗНАТЬ, что этот метод приводит к MassAssigmentExeption, если вы не установили $ Guarder или $ защищенных полей в {Модель}.

Я новичок в стек, так скажите, пожалуйста, если что-то не так, ТНХ.

+1

Что делать, если вы используете что-то вроде '$ запросов = request() -> all(); $ requests ['user'] = request() -> пользователь? request() -> user: 'http: //placehold.it/250x225'; '// просто предложение, так что вам не нужно' array_merge' –

+0

Ницца, это даже лучше. –

+1

Вы также можете использовать PHP 7 Null коалесцирующий оператор '$ requests ['user'] = request() -> user ?? 'HTTP: //placehold.it/250x225'; ' – DavidODW