用户想要更改他/她的密码,所以他在他/她的邮件中收到了如下信息:
链接中的id是数据库中用户的id,而忘记令牌只是每个用户唯一的随机字符串。 这是我的路线:
Route::get('/changepass/id={id}&forgot_token={token}','LoginController@change_pass');
Route::post('/valid_change','LoginController@valid_change');
这是我的控制器
public function change_pass($id,$token)
{
$user = DB::table('users')->where('id',$id)->where('forgot_token',$token)->first();
if($user == null)
return \View::make('/');
else
{
return \View::make('/changepass')->with('id',$user->id)->with('forgot_token',$token);
}
}
public function valid_change()
{
$input = Input::all();
$result_message = '';
$user_id = $input['store_id']; // id of user that is stored in a hidden textfield
$new_password = $input['new_pass'];
$token = $input['store_token']; // token value of a hidden textfield
if (strlen($input['confirm_pass']) >= 7)
{
if($input['confirm_pass'] == $input['new_pass'])
{
DB::table('users')->where('id',$user_id)->update(array('password'=>$new_password));
$result_message = 'match';
}
else
{
$result_message = 'not match';
}
}
else
$result_message = 'length is less than 7';
return Redirect::to('/changepass/id='.$user_id.'&forgot_token='.$token)->with('result_message',$result_message);
}
更新工作正常,但它没有在我的 changepass.blade.php
中给我$ result_message<label style="margin-left: 30px; color: indianred;" id="errorMsg">
@if(isset($result_message))
{{$result_message}}
@endif
</label>
我尝试使用:
return \View::make('/changepass/id='.$user_id.'&forgot_token='.$token)->with('result_message',$result_message);
但它给了我这个错误:
View [.changepass.id=1&forgot_token=IAytNT7zfW] not found.
因此,如果我的情况下无法view::make
,并且我无法使用redirect()获取->with()
值,那么获取{{1}的替代方法是什么? }值?
答案 0 :(得分:1)
您正在进行重定向,因此您必须使用session()
帮助器,如下所示:
@if(session('result_message'))
<label style="margin-left: 30px; color: indianred;" id="errorMsg">
{{ session('result_message') }}
</label>
@endif
您可以看到文档here