我有要求:
+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' (对于数据库中的搜索用户)。
我如何能够分离和更新模型?
答案 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'])