从请求对象发布数据,并以相同的创建方法手动分配值?

时间:2018-07-23 14:02:57

标签: laravel eloquent laravel-5.6

我想发布从用户输入中获取的所有经过验证的数据,以及未输入的数据,这些数据将自动检索。如ip。

而不是具有多个 name = $request->name,我想干燥我的代码。

可以这样做

$user = User::create([
        $request->all(),
        'status'  => 1,
        'term_condition_submitted_on' => Carbon::now(),
        'user_ip' => request()->ip(),
        'confirmation_code' => md5(uniqid(mt_rand(), true)),
        'confirmed' => 1,
      ]);

2 个答案:

答案 0 :(得分:1)

不,如果将一个数组传递到另一个数组中,则会得到一个多维数组。

您可以使用array_merge合并两个数组:

array_merge($request->all(), [
    'status'  => 1,
    'term_condition_submitted_on' => Carbon::now(),
    'user_ip' => request()->ip(),
    'confirmation_code' => md5(uniqid(mt_rand(), true)),
    'confirmed' => 1,
]);

与array_merge和append(带有+运算符)的区别是array_merge将覆盖第二个数组在第一个数组中的出现,因此您的手动值将始终优先。

答案 1 :(得分:1)

另一种选择是对请求使用Get-ChildItem (Get-Item -Path ".\" -Verbose).FullName -Recurse -Filter *.html | Foreach-Object { Write-Host "Checking "$_.FullName $content = Get-Content $_.FullName $content = $content -replace "(?m)(^.*\#region REMOVE.*)[.|\n|\W|\w]*(^.*\#endregion REMOVE.*)","" Set-Content $content -Path $_.FullName } 函数:

merge()

这会将$request->merge([ 'status' => 1, 'term_condition_submitted_on' => Carbon::now(), 'user_ip' => request()->ip(), 'confirmation_code' => md5(uniqid(mt_rand(), true)), 'confirmed' => 1, ]); $user = User::create($request->all()); 与传递给它的数组合并,如函数名所示,那么您可以简单地使用$request从修改后的{{1} }对象。