【问题标题】:"Trying to get property of non-object" Laravel“试图获取非对象的属性” Laravel
【发布时间】:2018-10-18 07:28:50
【问题描述】:

我有一些问题... 这是我的代码.. 我无法理解我的代码有什么问题.....

here is the error here is my user class

这是完整的 DashboardController

/**
 * '/home' calls this route
 *
 * @param none
 * @return view dashboard
 */
public function index()
{
    $this->permission();
    $data = [
        'pagetitle' => 'Dashboard',
        'permission' => Session()->get('permission'),
        'name' => Auth::user()->name,
    ];
    return view('dashboard',$data);
}


/**
 * Checks if session has permission in it if not they adds to it
 *
 * @param null
 * @return null
 */
private function permission()
{
    if (!Session()->has('permission')) {
        $permission = User::find(Auth::user()->id)->details;
        $permission_arr = [
            'department' => $permission->permission_department,
            'asset' => $permission->permission_asset,
            'users' => $permission->permission_users,
        ];

        Session()->put('permission', $permission_arr);
    }
}

}

我不知道如何解决它.. 任何帮助都会很棒..

【问题讨论】:

  • 您好,欢迎来到堆栈溢出,您能否提供 User 类的代码? :)
  • 嗨,您能否在问题中添加确切的错误..“尝试获取非对象的属性”意味着您正在尝试访问模型的孩子,而实际上根本没有孩子..
  • @Newbie 显示你的用户模型
  • 谢谢你们帮助我...最后我无法弄清楚我的代码有什么问题。尤其是@Demonyowh,他们帮助我理解了这里的一些东西......
  • 还要感谢@JigneshJoisar 提供的示例代码:)

标签: laravel


【解决方案1】:

您会遇到这种问题,因为您只能从您的 User 表中访问 details 列。从 $permission = User::find(Auth::user()->id);

中删除详细信息
private function permission(){
  if (!Session()->has('permission')){
     $permission = User::find(Auth::user()->id);
     $permission_arr = [
        'department' => $permission->permission_department,
        'asset' => $permission->permission_asset,
        'users' => $permission->permission_users,
     ];

     Session()->put('permission', $permission_arr);
  }
}

注意我只从您的权限变量中删除了 details 对象

【讨论】:

    猜你喜欢
    • 2015-09-22
    • 2017-03-20
    • 2014-03-25
    • 2015-01-25
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多