2017-02-10 72 views
0

我想与我的角色表和帐户表建立关系,但是当我添加belongsTo()方法时,我看不到帐户添加到它的数据。belongsTo()函数不工作

所以这是我的性格模式:

class Character extends Model 
{ 
    //Get players by level 
    public function scopeGetPlayersByLevel($query){ 
     return $query->orderBy('level', 'desc')->get(); 
    } 

    //Get players by zulie 
    public function scopeGetPlayersByZulie($query){ 
     return $query->orderBy('zuly', 'desc')->get(); 
    } 

    //Get online status 
    public function account(){ 
     return $this->belongsTo(Account::class, 'username', 'account_name'); 
    } 
} 

Account模型:

class Account extends Model 
{ 
    //Get online players 
    public function scopeGetOnlinePlayers($query){ 
     return $query->where('online', 1); 
    } 

    //Get online staff 
    public function scopeGetOnlineStaff($query){ 
     return $query->where('online', 1)->where('accesslevel', 350); 
    } 

    public function characters(){ 
     return $this->hasMany(Character::class, 'account_name', 'username'); 
    } 
} 

而且我在我的控制器中添加变量是这样的:

使用App \字符;

class RankingController extends Controller 
{ 
    function index(){ 
     $players = Character::find(100); 
     return $players; 
    } 
} 

表结构:

accounts: 
    - username 

characters: 
    - account_name //foreign key 

$players结果是只有字符数据。为什么没有账户数据添加到它?

回答

1

如果我明白你想要做的是你试图让一个球员和他们的所有角色。

尝试

function index(){ 
    $player = Account::find(1); 
    return $player->characters; 
} 

查找帐户角色

$caracter = Character::find(1); 
return $caracter->account; 
+0

其实它是周围的其他方式。我试图找到该字符的帐户 –

+0

请参阅我的编辑更新 – EddyTheDove

+0

这很有用,谢谢。我认为'返回$字符'会显示该帐户对象将在里面。任何想法,为什么不是这样? –

1

的试试这个:

//Get online status 
    public function account(){ 
     return $this->belongsTo(Account::class, 'account_name', 'username'); 
    } 
+0

这不起作用 –

+1

“这很有用,谢谢你,我认为返回$字符会显示账户对象会在里面,对于为什么不是这种情况有任何想法?”。对于这种情况,使用$ caracter = Character :: find(1) - >('account'); –