将零件请求复制到模型

时间:2017-11-05 13:27:29

标签: php laravel

我有要求:

 +request: ParameterBag {#43 ▼
    #parameters: array:9 [▼
      "fam" => "tr"
      "im" => "fd"
      "ot" => "ffff"
      "phone" => "ва"
      "log" => "44"
      "log2" => "aaaaaaaaaaaaaaaaaaa"
      "pass" => "aaaaaaaaaaaaaa"
      "Регистрация" => null
      "_token" => "T2eaYlfdTtWoAsAivf06UegUxCknxahR6jRQOyd4"
    ]
  }

功能:

public function UserChange2(Request $request){
    dump($request);
    $data=$request->all();
    $log = $request->input('log');
    dump($log);
    $user=userModel::select(['fam','im','ot','phone','log','pass'])->where('log',$log)->first();
    dump($user);
    $user->fill($request->all())->save();
    dump($user);
    $user->save;
}

用户模型。

 class userModel extends Model
    {
        public $timestamps = false;
        protected $fillable=['fam','im','ot','phone','log','pass','reg','token','date','position'];

    }

但是我不能$user->fill($request->all())->save(),因为在我的请求中有内容' log2' (对于数据库中的搜索用户)。 我如何能够分离和更新模型?

1 个答案:

答案 0 :(得分:1)

如果您不希望将新值保存到数据库中,我对变量存在的原因有点好奇,无论如何,这里是如何使laravel忽略这个额外变量 - 使用except()。您可以过滤掉返回其他所有内容的不需要的参数,而不是all()使用except()

public function UserChange2(Request $request){
  $data = $request->all();
  $log = $request->input('log');
  $user=userModel::select(['fam','im','ot','phone','log','pass'])->where('log',$log)->first();
  $user->fill($request->except('log2'))->save();
  dump($user);
  $user->save;
}

如果您碰巧有多个要忽略的变量,可以将它们添加到数组except(['log2', 'log3','log4'])