Laravel 4查询显示

时间:2013-07-24 22:58:21

标签: laravel laravel-4

我有一点问题;

我的数据库中有两个表:第一个是'accounts',第二个是'players'。我已经完成了与模型的关系,我已经完成了所有工作。但是,我还有一些事情没有做过。

在'accounts'表中有一个名为'id'的列。在“玩家”表格中有一个名为“account_id”的列,它与“accounts”表中的“id”匹配。

我想显示让我们说玩家名称(列''名称'位于'玩家'表中)。我可以说,当一个人登录时(“账户”表),显示玩家的名字(位于“玩家”表中的“名称”列),但是匹配的ID是什么?

实施例: “帐户” id = 1; name = 12345 “玩家” id = 1; name = John; account_id = 1;

现在,当我登录ID为1('accounts'表)的帐户时,我希望它显示所有拥有account_id = 1的玩家。我还想让它与所有帐户/ ID一起使用,不只是一个帐户。

我已经尝试过这样的事情:

     public function player()
 {   
  $player = Player::find(3);
  return View::make('aac.test')->with('player',$player); 
 }

只有一个身份识别为3的玩家,没有任何东西可以与account_id匹配,它只会显示ID为3的玩家。

这里也是我的User.php(模型;用于'帐户')和Player.php(模型;用于'玩家')

user.php的

    <?php

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

class User extends Eloquent implements UserInterface, RemindableInterface {

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


    /**
    *
    *
    *  Timestamps: true if needed, otherwise false.
    *
    */
    public $timestamps = false;

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

    /**
     * Get the unique identifier for the user.
     *
     * @return mixed
     */
    public function getAuthIdentifier()
    {
        return $this->getKey();
    }

    /**
     * Get the password for the user.
     *
     * @return string
     */
    public function getAuthPassword()
    {
        return $this->password;
    }

    /**
     * Get the e-mail address where password reminders are sent.
     *
     * @return string
     */
    public function getReminderEmail()
    {
        return $this->email;
    }

     public function players() {
        return $this->hasMany('Player');
    }

}

Player.php

    <?php

class Player extends Eloquent {


    protected $table = 'players';

    protected $fillable = array('char_name', 'sex');
    public $timestamps = false;

     public function user() {
        return $this->belongsTo('User');
    }
}

1 个答案:

答案 0 :(得分:2)

只需获得您需要的帐户,您就可以访问玩家收藏了。然后,您只需在视图中迭代account->players

public function players()
{
 $account = User::find(1);
 return View::make('aac.test')->with('account',$account);
}

在您的视图中,您可以遍历玩家

<?php foreach($account->palyers as $player):?>
  <?php echo $player->name;?>
<?php endforeach;?> 

希望这有帮助