ErrorException未定义的变量:code(查看:C:\ wamp \ www \ secureserver \ app \ views \ emails \ adminverify.blade.php)

时间:2014-07-02 19:03:36

标签: laravel

我一直在努力工作,无法解决方案请帮忙。看来我的View无法分别从我的Controller

中读取$ code和$ user变量

以下是我的控制器中分别实例化$ code和$ user Variables的部分:

UserController.php

public function varifyMail($code){
if(User::where('varification_code','=',$code)->update(['varification_status'=>1])){
    return Redirect::route('login')
                        ->with('success', 'Account varified.');
}else{
    return Redirect::route('login')
                        ->with('error', 'Varification Failed.Try again');
}





);

$validation = Validator::make(Input::all(),$rules);

if($validation->fails()){

    return Redirect::route('login')
                        ->with('error', 'Invalid Email Address. Try again.');

}else{
    $code = str_random(25);

    $userUpdate = ['recovery_code' => $code];
    User::where('email','=',Input::get('email'))->update($userUpdate);
    $data = ['code'=>$code];

    //send mail
    Mail::send('emails.recover',$data,function($message){
            $message->to(Input::get('email'))->subject('Recover Your Account.');
        });
    return Redirect::route('login')
                        ->with('success', 'Request Send successfully.Please Recover Your Account.');
    //return User::where('email','=',Input::get('email'))->get();
}










    Auth::login($user);
    return View::make('users.edit')
        ->with('title','Update Cridentials')
        ->with('user',User::where('id','=',$user->id)->first());
}else{
    return Redirect::route('login')
                        ->with('error', 'Recovery Failed.Try again');

}

这是我的观点: Adminverify.blade.php

<div class="header-content"><webversion><a href="{{URL::route('mail.varification',$code)}}">Web Version</a></webversion><span class="hide">&nbsp;&nbsp;|&nbsp; <preferences lang="en"><a href="{{URL::route('login')}}">Update preferences</a></preferences>&nbsp;&nbsp;|&nbsp;</span>

但每当我尝试使用它时都会收到此错误:

ErrorException

未定义的变量:代码(查看:C:\ wamp \ www \ secureserver \ app \ views \ emails \ adminverify.blade.php)

任何帮助都将受到高度赞赏谢谢!

感谢您的快速响应,但它恰好是它不起作用,但这是我的整个控制器与Varify更改为验证为镉建议所以我们可以确定究竟可能是什么挑战。

class UserController extends BaseController {


private function verify($email){
    $verify = User::where('email','=',$email)->first();
    if(! is_null($verify)){
        if($verify->role_id==2){
            return $verify->distributor_approve & $verify->varification_status;
        }else{
            return $verify->varification_status;
        }

    }else{
        return 0;
    }
}

/**
 * login page
 * @return void
 */
public function login()
{
    return View::make('users.login')
                    ->with('title', 'Log in');
}


/**
 * process to login a user
 * @return void
 */
public function doLogin()
{
    $rules = array
    (
        'email'     => 'required|email',
        'password'  => 'required'
    );
    $validation = Validator::make(Input::all(), $rules);

    if($validation->fails())
        return Redirect::route('login')
                            ->withInput()
                            ->withErrors($validation);
    else
    {
        $credentials = array
        (
            'email'     =>  Input::get('email'),
            'password'  =>  Input::get('password')
        );

        if($this->verify(Input::get('email')) && Auth::attempt($credentials))
        {
            Session::put('role', Auth::user()->role_id);

            //return User::where('id','=',Auth::user()->id)->first();
            if(User::where('id','=',Auth::user()->id)->first()->first_login == 0){

                return Redirect::route('info.create',[Auth::user()->id]);
            }

            return Redirect::intended('/');
        }
        else
            return Redirect::route('login')
                                ->withInput()
                                ->with('error', 'Error in Email Address or Password.');
    }
}

/**
 * logout a user
 * @return void
 */
function logout()
{
    Auth::logout();
    Session::forget('role');

    return Redirect::route('login')
                    ->with('success', 'You have been logged out.');
}

public function show(){

    $pages= Page::orderby('title')->get();
    if(Auth::check()){
        if(Auth::user()->role_id==1){
            return View::make('public.pages.admin')
                    ->with('title', "Home");
        }
    }
    return View::make('public.pages.show')
                    ->with('title', "Home")
                    ->with('pages',$pages);
}

public function register()
{
    return View::make('users.register')
                    ->with('title', 'Register');
}

public function doRegister()
{
    //return Input::all();



    $rules = array
    (
        'username'  =>  'required|min:3|max:15',
        'email'     => 'required|email|unique:users',
        'password' =>'Required|Confirmed',
        'password_confirmation' =>'Required',
        'role'  =>  'Required',
        'agree' =>  'Required',
        'recaptcha_response_field' => 'required|recaptcha'

    );
    $validation = Validator::make(Input::all(), $rules);

    if($validation->fails())
        return Redirect::route('register')
                            ->withInput()
                            ->withErrors($validation);
    else
    {
        if(Input::get('role')==3){
            $user = new User;
            $user->user_name      = Input::get('username');
            $user->email      = Input::get('email');
            $user->password      = Hash::make(Input::get('password'));
            $user->role_id        = Input::get('role');
            $code = str_random(25);
            $user->varification_code        = $code;
            $data = ['username'=>Input::get('username'),'code'=>$code];
            Mail::send('emails.validate',$data,function($message){
                $message->to(Input::get('email'))->subject('Please Verify Your Email.');
            });


            if($user->save())
            return Redirect::route('home')
                                ->with('success', "Verify Your Account.");
        else
            return Redirect::back()->withInput()->withErrors($validation)->with('error', 'Some error occured. Try again.');
        }else{

            $user = new User;
            $user->user_name      = Input::get('username');
            $user->email      = Input::get('email');
            $user->password      = Hash::make(Input::get('password'));
            $user->role_id        = Input::get('role');
            $user->distributor_status = 1;
            $code = str_random(25);
            $user->varification_code        = $code;
            $data = ['username'=>Input::get('username'),'code'=>$code];
            Mail::send('emails.validate',$data,function($message){
                $message->to(Input::get('email'))->subject('Please Verify Your Email.');
            });


            if($user->save())
                return Redirect::route('home')
                                    ->with('success', "Request Send successfully.Please Verify Your Email.");
            else
                return Redirect::back()->withInput()->withErrors($validation)->with('error', 'Some error occured. Try again.');
        }



    }
}

public function edit(){
    return View::make('users.edit')
        ->with('title','Update Cridentials')
        ->with('user',User::where('id','=',Auth::user()->id)->first());
}

public function update(){
    $rules = array
    (
        'username'  =>  'required|min:3|max:15',    
        'password' =>'Required|Confirmed',
        'password_confirmation' =>'Required'


    );
    $validation = Validator::make(Input::all(), $rules);

    if($validation->fails())
        return Redirect::back()
                            ->withInput()
                            ->withErrors($validation);
    else
    {


        $userUpdate = ['user_name' => Input::get('username'),
            'password'=>Hash::make(Input::get('password'))
            ];



        if(User::find(Auth::user()->id)->update($userUpdate)){

            Auth::logout();
            Session::forget('role');

            return Redirect::route('login')
                            ->with('success', 'Your Cridentials Have Been Changed.');

        }

        else
            return Redirect::back()->withInput()->withErrors($validation)->with('error', 'Some error occured. Try again.');


    }
}

public function verifyMail($code){
    if(User::where('varification_code','=',$code)->update(['varification_status'=>1])){
        return Redirect::route('login')
                            ->with('success', 'Account varified.');
    }else{
        return Redirect::route('login')
                            ->with('error', 'Varification Failed.Try again');
    }

}

public function passwordRecover(){
    $rules = array
    (
        'email'     => 'required|email'

    );

    $validation = Validator::make(Input::all(),$rules);

    if($validation->fails()){

        return Redirect::route('login')
                            ->with('error', 'Invalid Email Address. Try again.');

    }else{
        $code = str_random(25);

        $userUpdate = ['recovery_code' => $code];
        User::where('email','=',Input::get('email'))->update($userUpdate);
        $data = ['code'=>$code];

        //send mail
        Mail::send('emails.recover',$data,function($message){
                $message->to(Input::get('email'))->subject('Recover Your Account.');
            });
        return Redirect::route('login')
                            ->with('success', 'Request Send successfully.Please Recover Your Account.');
        //return User::where('email','=',Input::get('email'))->get();
    }


}

public function mailRecover($code){
    $user = User::where('recovery_code','=',$code)->first();
    if(! is_null($user)){

        Auth::login($user);
        return View::make('users.edit')
            ->with('title','Update Cridentials')
            ->with('user',User::where('id','=',$user->id)->first());
    }else{
        return Redirect::route('login')
                            ->with('error', 'Recovery Failed.Try again');

    }
}



    /**
 * Show a  page
 * @param  string $pageUrl
 * @return void
 */
public function pages($pageUrl = 'home')
{
    try
    {
        $page = Page::where('url', '=', $pageUrl)->firstOrFail();

/*
        if($page->id == 1)  $layout = 'layouts.home';
        else                $layout = 'layouts.default';
*/


$layout = 'layouts.default';
        return View::make('public.pages.publicShow')
                    ->with('title', "$page->title")
                    ->with('page', $page)
                    ->with('layout', $layout);
    }
    catch(ModelNotFoundException $e)
    {
       return "Page not found.";
    }
}

1 个答案:

答案 0 :(得分:0)

您的代码中某处需要View::make("adminverify")。我在你发布的代码中没有看到它,但它在某处。您需要将$code值传递给此视图,如下所示:

View::make("adminverify")->with("code", "some code value");

完成后,$code变量将在模板中可用。