在 Laravel 4 中使用 Auth::User()->user_group->name 打印用户组名称

Posted

技术标签:

【中文标题】在 Laravel 4 中使用 Auth::User()->user_group->name 打印用户组名称【英文标题】:Print user group name with Auth::User()->user_group->name in Laravel 4 【发布时间】:2015-02-10 14:20:32 【问题描述】:

我正在尝试使用 Auth::user()->user_group->name 在视图中显示用户组名称,但显然这不起作用,因为我一直在尝试获取非对象的属性。

代码如下

User_Group.php 模型

<?php

class User_Group extends Eloquent 

    protected $table = 'user_groups';

    public function users() 
        return $this->hasMany('User');
    


User.php 模型

<?php

use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface 

    use UserTrait, RemindableTrait;

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'users';

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = array('password', 'remember_token');

    public function user_group()
    
        return $this->belongsTo('User_Group', 'user_groups_id');
    

    public function getGravatarAttribute()
    
        $hash = md5(strtolower(trim($this->attributes['email'])));
        return "http://www.gravatar.com/avatar/$hash?s=100";
    

    public function isAdmin()
    
        return $this->user_groups_id == 1;
    


我的 profile.blade.php 视图

<small><p class="pull-right"> Auth::user()->user_group->name </p></small>

执行以下操作将打印用户组 ID 参考:

  Auth::user()->user_groups_id 

【问题讨论】:

【参考方案1】:

将方法重命名为 group 而不是 user_group

【讨论】:

成功了……但是为什么呢?不支持使用下划线吗? 我真的不知道,我以前遇到过这个问题,它一定是某种命名约定的事情 明白了!非常感谢!

以上是关于在 Laravel 4 中使用 Auth::User()->user_group->name 打印用户组名称的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 4.2 中,用户 'root'@'localhost' 的 Laravel 访问被拒绝(使用密码:YES)

Laravel 4:如何在 where 子句中使用访问器

如何在 laravel 4 中使用 ajax

在 Laravel 4 中使用命名空间

在没有 /vendor/bin/ 的 laravel 4 中使用 phpunit

Laravel 4 - 如何在视图中访问 MySQL 数据库