2

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

4

3 回答 3

6

尝试这个。

$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());
于 2019-09-20T11:29:43.203 回答
1

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

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

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

$request = request()->all();
$request['serviceSite'] = 'companyName';
$request['serviceOrderedTime'] = $time;
于 2019-09-20T11:30:11.763 回答
1

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

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

为了允许批量分配serviceSiteserviceOrderedTime可能包含在您的$fillable模型属性中。

希望能帮助到你。

于 2019-09-20T11:30:34.877 回答