gpt4 book ai didi

php - 排行榜中显示的数据缓慢

转载 作者:行者123 更新时间:2023-11-30 23:08:51 25 4
gpt4 key购买 nike

我在从数据库方案中检索数据并将其显示在网格中时遇到了一些麻烦,这是我使用的 sql 方案: enter image description here

观点:

{% extends 'MyBundle:Default:index.html.twig' %}
{% block body %}

<table class="table table-striped table-bordered">
<tr>
<th>Player name</th>
{% for action in actions %}
<th>{{ action.displayName }}</th>
{% endfor %}
</tr>
{% for stat in stats %}
<tr>
<td>{{ stat.playername }}</td>
{% for key, action in actions %}

{% for key2, a in stat.actions|group('id', stat.id) if (key2 == (key + 1)) %}
<td>{{ a|length }}</td>
{% else %}
<td>0</td>
{% endfor %}

{% endfor %}

</tr>
{% else %}
<p>No statistics have been found</p>
{% endfor %}
</table>
{% endblock %}

组函数用于对每个用户的数据进行分组,这是我写的函数:命名空间 MyName\MyBundle\Twig;

class GroupExtension extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_SimpleFilter('group', array($this, 'arrayGroup')),
);
}


public function arrayGroup($array, $element, $playerid)
{
$outputArr = array();

foreach($array as $key => $value)
{
if($value->getPlayer()->getId() == $playerid)
{
$outputArr[$value->getAction()->getId()][] = $value;
}
}

return $outputArr;
}
/**
* {inheritDoc}
*/
public function getName()
{
return 'group_extension';
}
}

一切正常,但加载速度很慢(我用虚拟记录填充了表格)我认为这是因为我在播放器实体中建立了 oneToMany 关系以轻松对所有内容进行分组。我只是不知道任何其他可能性。

这是玩家实体

use Doctrine\ORM\Mapping as ORM;

/**
* Player
*
* @ORM\Table(name="player")
* @ORM\Entity
*/
class Player
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $id;

/**
* @var string
*
* @ORM\Column(name="playerName", type="string", length=17)
*/
private $playerName;

/**
* @var PlayerAction[]
*
* @ORM\OneToMany(targetEntity="PlayerAction", mappedBy="player")
*/
private $actions;


/**
* Set id
*
* @param integer $id
* @return Player
*/
public function setId($id)
{
$this->id = $id;

return $this;
}

/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}

/**
* Set playerName
*
* @param string $playerName
* @return Player
*/
public function setPlayerName($playerName)
{
$this->playerName = $playerName;

return $this;
}

/**
* Get playerName
*
* @return string
*/
public function getPlayerName()
{
return $this->playerName;
}

/**
* @param mixed $actions
*/
public function setActions($actions)
{
$this->actions = $actions;
}

/**
* @return mixed
*/
public function getActions()
{
return $this->actions;
}
}

最佳答案

一切正常意味着您的代码是正确的。也许你需要检查你的表结构,你可以运行命令:

mysqldump -d your_database_name 

并在此处共享输出。

关于php - 排行榜中显示的数据缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20683855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com