保存前修改请求字段值 Laravel 5

Modify request field value before saving in Laravel 5

我正在使用 laravel 5 构建应用程序。 我有这样的代码:

public function store(ArticlesRequest $request, Pages $page)
{

    $parentSlug = Pages::getParentSlug($request->parent_id);
    $slug = ($request->slug)? $request->slug:$request->generic_title; 
    $validSlug = $request->makeSlug($slug);
    $request->slug = $validSlug;

    $page->create($request->all());
}

我想在保存之前更新一些数据,比如 slug,在这种情况下,但如果我不直接从表单字段输入,它不会保存 slug 字段。如何更新包含元素值的 $request?例如 $request->slug = $validSlug;并将我编辑的 slug 保存在数据库中。 非常感谢!

您可以像这样管理请求值:

$request->offsetSet('slug', $validSlug);

不过我同意上面的评论,在页面模型中管理默认值会好得多。

更新: 我以前有两种方法,其中一种方法从 Laravel 5.1 开始不再有效(感谢@omarjebary)。更新了答案。