从数据库中获取记录并插入特定行

时间:2016-01-19 12:28:10

标签: php symfony doctrine twig html-table

我有一个select查询,它使用INNER JOIN从2个表中检索所有数据。其中一个表称为Rack_Monitor,另一个表称为Rack_Content。 Rack_Monitor有一个名为TotalUnits的列(例如48)。 Rack_Content有一个名为Units的列(例如3或3; 4分隔符是a;如果它包含多个单位。

问题:

现在我需要在Twig中构建一个循环48次的表(TotalUnits)并检查是否有任何要填充的内容。如果不是行必须为空。 数组将从0开始,该数组的内容以3; 4为单位,因此必须将其放在表的第3行和第4行。

代码循环48次:

<table class="table" id="diagnosis_list">
  <thead>
    <tr>
      <th>Unit</th>
    </tr>
  </thead>
  <tbody>
    {% set TotalUnits = RackContent[0].TotalUnits %}
    {% for i in 1.. TotalUnits %}
      <tr>
        <td class="priority" style="">{{ i }}</th>
      </tr>
    {% endfor %}
  </tbody>
</table>

此代码显示表格的48行数字。

我坚持使用下一个代码。这是我到目前为止所得到的。我是在正确的轨道上吗?:

                   <div class="col-xs-5 col-md-7 col-lg-7">
  <table class="table" id="diagnosis_list">
    <thead>
    <tr>
      <th>Name</th>
      <th>Intern IP</th>
      <th>Extern IP</th>
      <th>Backup</th>
      <th>&nbsp;</th>
    </tr>
    </thead>
    <tbody>
      {% for i in 0..TotalUnits %}

        {% if RackContent[i] is defined %}
          {% set UnitSplit = RackContent[i].Units|split(';') %}
          <tr>
            <td><h5>HostName</h5><small>Webserver</small></td>
            <td><h5>InternIP</h5><small>WebserverInternIP</small></td>
            <td><h5>IPMI IP</h5><small>WebserverIP</small></td>
            <td><h5>BackupserverIP</h5></td>
            <td><a class='btn btn-warning'>
                <i class="fa fa-edit text-white"></i>
                </a>
              <a class='btn btn-danger'>
                <i class="fa fa-trash-o text-white" onclick="Delete(2)"></i>
                </a>
            </td>
          </tr>
        {% else %}
          <tr>
            <td><h5>Empty</h5><small>Empty</small></td>
            <td><h5>Empty</h5><small>Empty</small></td>
            <td><h5>Empty</h5><small>Empty</small></td>
            <td><h5>Empty</h5></td>
            <td><a class='btn btn-warning'>
                <i class="fa fa-edit text-white"></i>
              </a>
              <a class='btn btn-danger'>
                <i class="fa fa-trash-o text-white" onclick="Delete(2)"></i>
              </a>
            </td>
          </tr>
        {% endif %}

      {% endfor %}

    </tbody>
  </table>
</div>

为什么我设置2个表是因为它是一个可拖动的表。所以这些数字是静态的,无法移动。包含内容的另一个表可以上下移动。

代码还没有完成,但我只是想知道你们是否会以同样的方式编程,还是有更有效的方法呢?

1 个答案:

答案 0 :(得分:0)

这就是我做到的。现在工作正常。

<table class="table table-condensed">
                    <thead>
                    <tr>
                        <th>ID</th>
                        <th>Hardware</th>
                        <th>Name</th>
                        <th>Intern IP</th>
                        <th>Extern IP</th>
                        <th>Backup</th>
                        <th>Options</th>
                    </tr>
                    </thead>
                    <tbody>
                    {% for i in 1..(TotalUnits) %}
                        {% set ID = i  %}
                        {% set FoundIt = 0 %}
                        {% for R in RackContent %}
                            {% for U in R.Units %}
                                {% if loop.length == 2 %}
                                    {% if U == i and loop.index == 1 %}
                                        <tr class="success">
                                            <td>{{ ID }}</td>
                                            <td rowspan="2"><h5>{{ R.Name }}</h5></td>
                                            <td rowspan="2"><h5>{{ R.HostName }}</h5><small>{{ R.WebServer }}</small></td>
                                            <td rowspan="2"><h5>{{ R.InternIP }}</h5><small>{{ R.WebServerInternIP }}</small></td>
                                            <td rowspan="2"><h5>{{ R.IPMIIP }}</h5><small>{{ R.WebServerIP }}</small></td>
                                            <td rowspan="2"><h5>{{ R.BackupServer }}</h5></td>
                                            <td rowspan="2"><div class="dropdown">
                                                    <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                                                        Options
                                                        <span class="caret"></span>
                                                    </button>
                                                    <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
                                                        <li><a href="#" data-toggle="modal" data-target="#myModal"><i class="fa fa-eye text-blue"></i>Open</a></li>
                                                        <li><a href="#" data-toggle="modal" data-target="#myModal"><i class="fa fa-edit text-orange"></i>Edit</a></li>
                                                        <li><a href="#" data-toggle="modal" data-target="#myModal"><i class="fa fa-trash-o text-red"></i>Delete</a></li>
                                                    </ul>
                                                </div></td>
                                        </tr>
                                        {% set FoundIt = 1 %}
                                    {% elseif U == i and loop.index == 2%}
                                        <tr class="success">
                                            <td>{{ ID }}</td>
                                        </tr>
                                        {% set FoundIt = 1 %}
                                    {% endif %}
                                {% elseif loop.length == 1 %}
                                    {% if U == i and loop.index == 1 %}
                                        <tr class="success">
                                            <td>{{ ID }}</td>
                                            <td><h5>{{ R.Name }}</h5></td>
                                            <td><h5>{{ R.HostName }}</h5><small>{{ R.WebServer }}</small></td>
                                            <td><h5>{{ R.InternIP }}</h5><small>{{ R.WebServerInternIP }}</small></td>
                                            <td><h5>{{ R.IPMIIP }}</h5><small>{{ R.WebServerIP }}</small></td>
                                            <td><h5>{{ R.BackupServer }}</h5></td>
                                            <td><div class="dropdown">
                                                    <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                                                        Options
                                                        <span class="caret"></span>
                                                    </button>
                                                    <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
                                                        <li><a href="#" data-toggle="modal" data-target="#myModal"><i class="fa fa-eye text-blue"></i>Open</a></li>
                                                        <li><a href="#" data-toggle="modal" data-target="#myModal"><i class="fa fa-edit text-orange"></i>Edit</a></li>
                                                        <li><a href="#" data-toggle="modal" data-target="#myModal"><i class="fa fa-trash-o text-red"></i>Delete</a></li>
                                                    </ul>
                                                </div></td>
                                        </tr>
                                        {% set FoundIt = 1 %}
                                    {% endif %}
                                {% endif %}
                            {% endfor %}
                        {% endfor %}
                        {% if FoundIt == 0 %}
                            <tr class="active">
                                <td>{{ ID }}</td>
                                <td></td>
                                <td></td>
                                <td></td>
                                <td></td>
                                <td></td>
                                <td></td>
                            </tr>
                        {% endif %}
                    {% endfor %}
                    </tbody>
                </table>