我正在使用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保存在DB中。 非常感谢你!
答案 0 :(得分:9)
您可以像下面这样管理请求值:
$request->offsetSet('slug', $validSlug);
但是我同意上面的评论,在Pages模型中管理默认值会好得多。
更新:我之前有两种方法,其中一种方法不再适用于Laravel 5.1(感谢@omarjebary)。更新了答案。