public function postEdit($ID){ // ardent autohydrates this model $newUser = new User; // valIDation fails if(!$newUser->valIDate()) return Redirect::action('UsersController@getEdit',$ID) ->with('error',Lang::get('Bitte Eingabe überprüfen')) ->withErrors($newUser->errors()) ->withinput(input::except('password')); // load model from db $exUser = User::find($ID); if(!$exUser->exists) return Response::make('No such user',500); // save model,ardent autohydrates again? if($exUser->save()) return Redirect::action('UsersController@getShow',$ID) ->with('success',Lang::get('Änderungen gespeichert')); else return Redirect::action('UsersController@getEdit',Lang::get('Bitte Eingabe überprüfen')) ->withErrors($newUser->errors()) ->withinput(input::except('password'));}
这似乎是一个非常多的代码(它不工作),我无法找到这种情况的例子
解决方法 好的,我自己解决了,因为这不是一个非常活跃的话题.问题是结合了ardents自动水合功能和保留旧密码的独特要求,如果没有给出新密码.因为在valIDate()和save()上进行了自动水合,所以也无法阻止自动水合空密码.首先,我尝试更改input数组并使用旧密码覆盖它,但之后我只是关闭了用户模型的自动水合:
class User extends Ardent implements UserInterface,RemindableInterface { public $forceEntityHydrationFrominput = false; public $autoHydrateEntityFrominput = false;
这是POST上的编辑 *** 作:
public function postEdit($ID){ // manually insert the input $user = new User(input::all()); // valIDate the user with special rules (password not required) if($user->valIDate(User::$updateRules)) { // get user from database and fill with input except password $user = User::find($ID); $user->fill(input::except('password')); // fill in password if it is not empty // will flag the pw as dirty,which will trigger rehashing on save() if(!empty(input::get('password'))) $user->password = input::get('password'); if($user->save()) return Redirect::action('UsersController@getIndex') ->with('success',Lang::get('Änderungen gespeichert')); } return Redirect::action('UsersController@getEdit',$ID) ->with('error',Lang::get('Bitte Eingaben überprüfen')) ->withErrors($user->errors()) ->withinput(input::except('password'));}总结
以上是内存溢出为你收集整理的php – Laravel / Ardent /用户模型编辑保存全部内容,希望文章能够帮你解决php – Laravel / Ardent /用户模型编辑保存所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)