我正在为我的api写一个更新方法。我需要更新请求的字段。 所以我正在尝试只获取请求的字段并更新它们。但是,即使我将$ fill转换为字符串,下面的代码也会返回null。
foreach ($fillableFields as $fill){
$customerId->$fill = $request->get("$fill") ;
编辑-1
我的代码如下;
$fillableFields = array('lastname','firstname');
当我dd($ fill)时,它返回null。
答案 0 :(得分:1)
您忘记调用save()
方法更新对象:
foreach ($fillableFields as $fill){
$customerId->$fill = $request->get($fill);
$customerId->save();
}
答案 1 :(得分:0)
你的方法应该是。
public function yourMethod(Request $request)
{
try {
foreach ($fillableFields as $fill){
$customerId->$fill = $request->get($fill) ;
}
}
} catch (\Exception $ex) {
}
}
答案 2 :(得分:0)
获取请求参数的最佳方法在laravel的官方文档中提供,如下所示。
您可以根据具体需要获取请求参数。
通过使用以下语句,您只能获得您在属性中指定的那些参数作为数组,例如:username,password。
$input = $request->only(['username', 'password']);
如果你想得到除了特定字段之外的所有字段,你可以用以下参数定义除以下参数。例如:通过在下面使用它将允许获得除credit_card之外的所有字段。
$input = $request->except('credit_card');
有关请求参数的详细信息,请参阅官方文档网址:https://laravel.com/docs/5.4/requests