如何给request()->all()添加变量? (Laravel 6.0)

How to add variables to request()->all()? (Laravel 6.0)

我 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() 助手来做到这一点,还是我必须使用其他方法?

试试这个。

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

确保 serviceSiteserviceOrderedTime 在您的模型中可填充。

如果你想将它与 $request 合并,那么你可以这样做。

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

如你所愿。

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

laravel collection 中有一个辅助函数叫做 add 你可以像这样使用它

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

或者你也可以用普通的方式制作

$request = request()->all();
$request['serviceSite'] = 'companyName';
$request['serviceOrderedTime'] = $time;

这是为您的请求设置变量的方法:

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

为了允许 mass assignmentserviceSiteserviceOrderedTime 可能包含在您的 $fillable 模型中 属性。

希望对您有所帮助。