在背包的3.6版本中,我可以在存储属性值之前对其进行更改。 我有这个代码
If ($request->description == "") {
$request->description="User has not entered any description";
}
$redirect_location = parent::storeCrud($request);
在V4中我该怎么做?我正在阅读此guide,但无法使其正常工作。 这就是我在V4中尝试的方法
public function store(PedidoRequest $request)
{
Log::debug('testing...');
If ($request->description == "") {
$request->description="User has not entered any description";
}
$redirect_location = $this->traitStore();
return $redirect_location;
}
答案 0 :(得分:3)
Laravel中的Request对象Illuminate\Http\Request
无法通过这样的属性来设置输入,没有__set
方法($request->description = '...'
不会设置名为description
)。您将必须将输入合并到请求中,或使用数组语法来做到这一点:
$request->merge(['description' => '...']);
// or
$request['description'] = '...';
但是,由于背包似乎已经抽象了一些东西,因此您无法在控制器方法中进行任何控制,因此您可以尝试以下方法:
$this->crud->request->request->add(['description'=> '...']);
可能:
$this->request->merge(['description' => '...']);
那将假定控制器使用的某些特征正在使用Fields
特征。