Как добавить переменные в request () -> all ()?(Laravel 6.0) - PullRequest
0 голосов
/ 20 сентября 2019

У меня Laravel 6.0 с чем-то вроде этого, использующим помощник request()->all(); для создания новой строки в базе данных ...

$input = request()->all();
Service::create($input);

Я хочу добавить две переменные в него вручную, чтобы мыне нужно, чтобы пользователь добавил их вручную.Я попробовал варианты этого ...

$time = time();
$input = array_merge(request()->all(), ['serviceSite' => 'companyname', 'serviceOrderedTime' => $time]);
Service::create($input);

Есть ли способ сделать это с помощью помощника request() или мне нужно использовать альтернативный метод?

Ответы [ 3 ]

1 голос
/ 20 сентября 2019

В laravel collection есть вспомогательная функция с именем add, которую вы можете использовать следующим образом:

$request->add(['serviceSite' => 'companyname']);
$request->add(['serviceOrderedTime' => $time]);
Service::create($request->all());

, или вы можете сделать это обычным способом

$request = request()->all();
$request['serviceSite'] = 'companyName';
$request['serviceOrderedTime'] = $time;
1 голос
/ 20 сентября 2019

Вот как вы можете установить переменную по вашему запросу:

$request->request->set('serviceSite', 'serviceSite');
$request->request->set('serviceOrderedTime', $time);

Чтобы разрешить массовое назначение , serviceSite и serviceOrderedTime могут быть включены в ваш$fillable свойство модели.

Надеюсь, это поможет.

1 голос
/ 20 сентября 2019

Попробуйте это.

$time = time();
$input = $request->all();
$input['serviceSite'] = 'companyname';
$input['serviceOrderedTime'] = $time;
Service::create($input);

Убедитесь, что serviceSite и serviceOrderedTime заполняется в вашей модели.

Если вы хотите объединить его с $request, тогда вы можете сделать какэто.

$request->merge(["key"=>"value"]);

как ваш путь.

  $time = time(); 
  $request->request->add(['serviceSite' => 'companyname','serviceOrderedTime'=>$time]);
  Service::create($request->all());
...