在非对象上调用成员函数role()

时间:2014-06-13 22:00:22

标签: symfony laravel model controller

我正在使用laravel,我在使用模型/控制器时遇到了问题。

类BaseController扩展Controller

$id = Session::getId();
if (!empty($id)) {
  $user = User::find($id);
  $role = User::find($id)->role()->first();

这是用户模型

 class User extends Eloquent implements UserInterface, RemindableInterface {
    ........
/**
* An user can have only one role
*/
public function role() {
    return $this->hasOne('role_assignments', 'user_id');
    }

这是Role_Assignments模型

class Role_Assignments extends Eloquent {
public static $timestamps = true;

/**
* A role can have several users
**/
public function users() {
    return $this->hasMany('User');
}
}

表格(对不起但是我无法发布图片,只有2个链接)。

所有表格:

http://i.imgur.com/wVUcBW5.jpg

用户:

http://i.imgur.com/ePgkmtm.jpg

角色:

i.imgur.com/hsWnSVJ.jpg

Role_assignements:

i.imgur.com/6H3KK7F.jpg

编辑:

我把它改成了,似乎得到了ID

        if (Auth::check())
            {
                 $id = Auth::user()->getId();
            }

    if (!empty($id)) {

        $user = User::find($id);
                    //print_r($user);
        $role = User::find($id)->role()->first()->role_id;
                    $configtable = DB::table('config')->where('id', '1')->first();

1 个答案:

答案 0 :(得分:0)

find方法替换为findOrFail,我很确定User::find($id)在您的情况下返回null