Laravel 5 - 如何使用View :: make创建唯一的URL

时间:2015-11-17 16:19:53

标签: php laravel-5

用户想要更改他/她的密码,所以他在他/她的邮件中收到了如下信息:

enter image description here

链接中的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}的替代方法是什么? }值?

1 个答案:

答案 0 :(得分:1)

您正在进行重定向,因此您必须使用session()帮助器,如下所示:

@if(session('result_message'))
    <label style="margin-left: 30px; color: indianred;" id="errorMsg">
        {{ session('result_message') }}
    </label>
@endif

您可以看到文档here