PHP/Laravel/Bootsrap获取数据
我有个小问题。我在数据库中有一个名为“玩家技能”的表。它包含如下列(示例): 玩家id |技能id |价值|计数PHP/Laravel/Bootsrap获取数据,php,twitter-bootstrap,laravel,laravel-4,Php,Twitter Bootstrap,Laravel,Laravel 4,我有个小问题。我在数据库中有一个名为“玩家技能”的表。它包含如下列(示例): 玩家id |技能id |价值|计数 150 10 12 151051 15 8 10 12 player_id实际上是players表下的id列中的player的id。 还有八种技能。值是默认值(在本例中与此无关)。计数就是价值(玩家技能的价值) 基本上,我想要的是将数据拉入引导选项卡(示例): 它工作得很好,但我需要它在标签页中为每项技能进行更改 您的需求在Laravel中得到了很好的满足。首先,您必须声明技能和玩
它工作得很好,但我需要它在标签页中为每项技能进行更改 您的需求在Laravel中得到了很好的满足。首先,您必须声明技能和玩家之间的多对多关系如下(阅读更多:):
职业技能扩展了口才{
公共职能扮演者(){
返回$this->belongTomany('Player'、'Player\u skills'、'skill\u id'、'Player\u id'))
->withPivot('value','count');
}
}
然后,您可以通过与方法链接的玩家从数据库中获得所有技能。此方法不是强制性的(您可以改用all
),但此处的快速加载是一种很好的做法(请阅读更多内容:):
最后,您可以迭代您的技能数组和每个技能中的玩家数组(阅读更多关于刀片模板的信息:):
询问是否有不清楚的地方。我们可以了解更多关于您想要打印的内容的信息吗?每个玩家都有技能标签的玩家列表,或者里面有玩家的技能标签列表?一个小画或模式可能会有帮助。@Alexandre Butinski列出了一个包含玩家的技能标签。基本上是通过player_id和skill_id获取玩家名称,并从高到低排序。然后,当你改变标签,你会得到另一个技能,做同样的事情。首先,谢谢你的回答。其次,我得到一个错误:SQLSTATE[42S02]:找不到基表或视图:1146表“offs.skills”不存在(SQL:select*from
skills)(绑定:array())
。实际上这是player_skils表,但我不知道要更改什么哈哈。如果您的某个模型不遵循约定,您必须在模型中使用protected$table='skill'设置表名代码>。正如我所解释的,关系表是在关系声明中设置的。当我尝试进入视图时,您何时会收到此错误。我还有一个新的错误(这是一个很长的错误):,我知道这是桌子的问题,我的桌子是这样的:嘿,你能在提问之前花5秒钟自己搜索吗?错误很明显:未知列'player\u skills.skill\u id'
,因为在您的表中,该列名为skillid
,而不是skillid
。哈,对不起,没有看到。我现在得到一个未定义的属性:Illumb\Database\Eloquent\Collection::$players错误。错误在这一行:
。
<div class="tabbable tabs-left">
<ul class="nav nav-tabs">
<li class="active"><a href="?skill0" data-toggle="tab">Section 1</a></li>
<li><a href="?skill1" data-toggle="tab">Section 2</a></li>
<li><a href="?skill2" data-toggle="tab">Section 3</a></li>
...
</ul>
<div class="tab-content">
<div class="tab-pane active" id="?skill0">
<p>I'm in Section A.</p>
</div>
<div class="tab-pane" id="?skill1">
<p>Howdy, I'm in Section B.</p>
</div>
<div class="tab-pane" id="?skill2">
<p>What up girl, this is Section C.</p>
</div>
</div>
</div>
public function highscores()
{
$players = Player::orderBy('experience','desc')->get();
return View::make('aac.highscores')->with('players', $players);
}
class SkillController extends BaseController {
public function index()
{
$skills = Skill::with('players')->get();
return View::make('skill.index', array('skills' => $skills));
}
}
<!-- index.blade.php -->
<div class="tabbable tabs-left">
<ul class="nav nav-tabs">
@foreach ($skills as $skill)
<li><a href="?{{ $skill->id }}" data-toggle="tab">{{ $skill->name }}</a></li>
@endforeach
</ul>
<div class="tab-content">
@foreach ($skills as $skill)
<div class="tab-pane active" id="?{{ $skill->id }}">
@foreach ($skills->players as $player)
<p>{{ $player->name }} : {{ $player->pivot->count }} points !</p>
@endforeach
</div>
@endforeach
</div>
</div>
$orderedPlayers = $skill->players->sortBy(function($player) {
return $player->pivot->count;
});