带变量的Laravel $请求返回null

时间:2017-03-10 09:27:54

标签: laravel request

我正在为我的api写一个更新方法。我需要更新请求的字段。  所以我正在尝试只获取请求的字段并更新它们。但是,即使我将$ fill转换为字符串,下面的代码也会返回null。

        foreach ($fillableFields as $fill){
            $customerId->$fill = $request->get("$fill") ;

编辑-1

我的代码如下;

  $fillableFields = array('lastname','firstname');

当我dd($ fill)时,它返回null。

3 个答案:

答案 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