不能在laravel 4.2中使用Auth :: user()

时间:2015-06-10 01:39:57

标签: php mysql laravel-4

我正在使用laravel 4.2创建登录页面和主页。我的登录页面工作,然后我想显示登录用户的用户名。这是我的代码:

LoginController:

public function doLogIn(){
        $rules = array(
            'username'    => 'required|min:3',
            'password' => 'required|min:3'
        );

        $validator = Validator::make(Input::all(), $rules);
        if ($validator->fails()) {
            return 'Wrong Require';
        }
        else{

            $user = array(
                'username' => Input::get('username'),
                'password' => Input::get('password')
            );

            // $password = Hash::make('password');

            if (Auth::attempt($user)) 
            {
                return Redirect::intended('home');
                //return View::make('home.home');
            }
            else
            {
                return 'Wrong Password';
            }
        }
    }

这是我要显示用户名的主页

Home.blade.php:

@section('header')
    <ul class="nav navbar-nav navbar-right">
       <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">{{ Auth::user() }}<span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="#">Sigh Out</a></li>
          </ul>
        </li>
      </ul>
@endsection

{{ Auth::user() }}

发生错误

这是我得到的错误

enter image description here

我确定我在用户模型中覆盖$ primaryKey(我在mysql中手动创建表而不使用laravel)

这是我的模型,但它不正确,因为我写了一些我记得的部分

<?php 
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface {

    protected $table = 'user';
    protected $primaryKey = 'userid';
    protected $fillable = array('username','password');
    protected $hidden = array('username','password');

    //..... and some method require for each implement class
}

谢谢。

2 个答案:

答案 0 :(得分:0)

您应该使用:

{{ Auth::user()->name }}

答案 1 :(得分:0)

为什么不使用id而不是userid? 你可以描述你的用户表吗?