I have Laravel 6.0 with something like this using the request()->all();
helper to create a new row on the database...
$input = request()->all();
Service::create($input);
I want to add two variables to it manually so that we don't need the user to add them manually. I have tried variations on this...
$time = time();
$input = array_merge(request()->all(), ['serviceSite' => 'companyname', 'serviceOrderedTime' => $time]);
Service::create($input);
Is there a way to do this with the request()
helper or do I have to use an alternative method?
Try this.
$time = time();
$input = $request->all();
$input['serviceSite'] = 'companyname';
$input['serviceOrderedTime'] = $time;
Service::create($input);
Make sure serviceSite
and serviceOrderedTime
fillable in your model.
IF you want to merge it with $request
then you can do like this.
$request->merge(["key"=>"value"]);
$time = time();
$request->request->add(['serviceSite' => 'companyname','serviceOrderedTime'=>$time]);
Service::create($request->all());
There is a helper function in laravel collection
called add
you can use it like this
$request->add(['serviceSite' => 'companyname']);
$request->add(['serviceOrderedTime' => $time]);
Service::create($request->all());
or you can make it by the common way
$request = request()->all();
$request['serviceSite'] = 'companyName';
$request['serviceOrderedTime'] = $time;
This is how you can set a variable to your request:
$request->request->set('serviceSite', 'serviceSite');
$request->request->set('serviceOrderedTime', $time);
In order to allow mass assignment , the serviceSite
and serviceOrderedTime
may be include in your $fillable
model property.
Hope it helps.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.