2017-02-10 69 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'); –