2016-10-10 65 views
2

我一直在四處尋找,但所有的答案和文檔都是針對不動態生成所有內容的表。使用laravel動態創建帶垂直列中的標題的HTML表?

這是我的刀片文件:

@extends('layout') 

@section('content') 
    <h1>User Profile Data</h1> 
     <table class="table table-striped"> 
     <tr> 
      @foreach ($columns as $column => $name) 

       <th><strong> {{ $name }} </strong></th> 

      @endforeach 

      @foreach ($profile as $person) 

       @foreach ($person as $name) 

        <td> {{ $name }} </td> 

       @endforeach 

      @endforeach 
     </tr> 
     </table> 
@stop 

一切正常,除了一個問題,該負責人水平走的,而不是垂直。我希望能夠自動填充數據庫中的數據並將其並排顯示。

像這樣:

Name: John 
Age: 25 
Height: 176 
etc. 

我缺少什麼?

回答

1

v.1直接生成垂直頭表。

這可以很容易地解決後,你意識到你的表將實際上看起來像HTML中,以便有垂直的標題。

<h1>User Profile Data</h1> 
<table class="table table-striped"> 
    <tr> 
     <th><strong> Name: </strong></th> 
     <td> John </td> 
     <td> Joane </td> 
    </tr> 
    <tr> 
     <th><strong> Surname: </strong></th> 
     <td> Doe </td> 
     <td> Donald </td> 
    </tr> 
    <tr> 
     <th><strong> Email: </strong></th> 
     <td> [email protected] </td> 
     <td> [email protected] </td> 
    </tr> 
</table> 

後你知道你的目標上面,你只需要嵌套foreach循環,這樣就可以填充數據。

對於每一列,您都必須從配置文件返回匹配數據。 而不是返回$person->name使用$person[$col]

要窩在foreach使用相同的技術爲您的其他問題: How to show data from (multidimensional?) arrays with Laravel 5.3 blade

第2節使用普通表與CSS技巧相結合,迴流表 導入Twitter的引導和在形成良好的桌子上使用.table-reflow

生成的表如下所示,可與您最初的laravel代碼生成:

<table class="table table-striped table-hover table-reflow"> 
    <thead> 
     <tr> 
      <th ><strong> Name: </strong></th> 
      <th ><strong> Surname: </strong></th> 
      <th ><strong> Email: </strong></th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td> John </td> 
      <td> Doe </td> 
      <td> [email protected] </td> 
     </tr> 
     <tr> 
      <td> Joane </td> 
      <td> Donald </td> 
      <td> [email protected] </td> 
     </tr> 
    </tbody> 
</table> 

內容順序和複雜的表格: 當心表迴流風格改變內容的視覺秩序。確保只將這種樣式應用於格式正確的和簡單的數據表(特別是,不要將此用於佈局表),併爲每個行和列使用適當的<th>表格標題單元格。

此外,對於具有跨多行或多列的單元格的表(使用rowspan或colspan屬性),此類無法正常工作。

您應該在這裏檢查文檔:

twitter-bootstrap .table-reflow

編輯:

除了Kronmark的優秀點,我在這裏離開這個讓新人們。這就是自動錶格可能的樣子:

<table class="table table-striped table-hover table-reflow"> 
     @foreach($array as $key=>$value) 
       <tr> 
        <th ><strong> {{ $key }}: </strong></th> 
        <td> {{ $value }} <td> 
       </tr> 
     @endforeach 
    </table> 

關鍵是表中的標題,值是與它關聯的數據點。即Full_Name = Key,John Magsson =值。 這是從一個陣列產生,該過程應在此處說明:

Blade view not printing data from array

好運。 :)

+0

謝謝你親切的先生!這很棒! – Mugluck

+0

我應該注意到,我試圖避免手動做這件事的原因之一是因爲有69個值我必須打印出來,他們將被添加到以後,所以手動添加它是一個工作我想喜歡避免。 – Mugluck

+0

不客氣。在你的情況下,我會建議使用第二個版本,CSS技巧使用垂直標題顯示一個普通表。不過,不要忘記簡化表格,因爲table-reflow不支持列/行跨度。 快樂編碼。 KMM –