我的应用程序为公司员工提供编辑其数据的能力(例如:地址)。一旦他们改变了任何一个,经理就会收到一封包含他们新信息的电子邮件。问题是每次员工点击更新时都会发送电子邮件。我需要应用程序来比较数据库中的信息,只有在有新信息时才发送电子邮件。有什么好办法实现这个目标? 对不起,我忘了提,电子邮件只需要包含新的iformation。所以isDirty()对我不起作用。
public function editcredentials_action(Request $request)
{
$user = Auth::user();
$address = $user->address;
$this->validate($request, [
'password' => 'max:255',
'language' => 'integer',
'facebook_profile' => 'max:255',
'twitter_profile' => 'max:255',
'street' => 'max:255',
'house_number' => 'max:255',
'city' => 'max:255',
'zip_code' => 'max:255',
'country' => 'max:255',
]);
if (!empty($request->get('password')) && $request->get('password')) {
$user->password = bcrypt($request->get('password'));
}
$user->facebook_profile = $request->get('facebook_profile');
$user->twitter_profile = $request->get('twitter_profile');
$user->language_id = $request->get('language');
$user->save();
if (!$address) {
$address = new UserAddress();
$address->user_id = $user->id;
}
$address->street = $request->street;
$address->house_number = $request->house_number;
$address->city = $request->city;
$address->zip_code = $request->zip_code;
$address->country = $request->country;
$address->save();
$data = [
'email' => $user->email,
'facebook' => $user->facebook_profile,
'twitter' => $user->twitter_profile,
'name' => $user->name . ' ' . $user->lastname,
'address' => $address,
];
Mail::send('emails.user-update', $data, function ($message) use ($data) {
$message->from('no-reply@example.com', 'Profile change');
$message->to('profilechange@example.com');
$message->subject('Profile change: ' . $data['name']);
});
Session::flash('message', trans('app.global.saved'));
return back();
//return redirect()->route('profile.edit-credentials');
}
答案 0 :(得分:1)
我不认为
reg query HKLM\Software\Wow6432Node\Atria\ClearCase\CurrentVersion /v ClearCaseGroupName
可以在这里工作,但您可以在开头保存用户数据:
isDirty()
然后使用$params = ['language', 'facebook_profile', 'twitter_profile', 'name'];
$oldUserData = auth()->user()->only($paramsToCOmpare);
方法比较数据:
save()
您可以对if (count(array_diff($oldUserData, $user->only($paramsToCompare))) > 0) {
// Data was changed.
}
模型执行相同的操作。对于密码,只需检查表单中是否填写了密码(因为您还没有显示它):
UserAddress