2017-08-09 51 views
0

我有26個教室,我的想法是,在學校的平面圖上,使用時填充SVG圖像中的顏色的教室。動態SVG圖像與Laravel 5.4 PHP - SQL

已經做到了,但我想我必須做26個查詢sql,每個教室一個。 它是正確的還是可以有另一種方式?

控制器:

public function index() 
{ 
    $dataClassr = Classroom::all()->where('name_classroom', 'sistemas 1')->first(); 

    return view('welcome')->with('dataClassr', $dataClassr); 
} 

查看:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 545 532.5"> 
    <title>Recurso 3</title> 
    <g> 
     <polyline points="315 484 264 483.5 264 268.5 213 268.5 213 84.5 200 84.5 200 0.5 265 0.5 265 172.5 315 172.5" style="fill: #cecece;stroke: #000;stroke-miterlimit: 10"/> 
     <g> 
      // Conditional 
      @if($dataClassr->availability == 'not available') 
       <rect x="1" y="83.5" width="221" height="177" style="fill: #fc7;stroke: #111;stroke-miterlimit: 10;stroke-width: 2px"/> 
      @endif 

      <rect x="265" y="4.5" width="219" height="168" style="fill: #fff;stroke: #111;stroke-miterlimit: 10;stroke-width: 2px"/> 
      <rect x="315" y="172.5" width="229" height="359" style="fill: #fff;stroke: #111;stroke-miterlimit: 10;stroke-width: 2px"/> 
      <text transform="translate(52.96 176.84)" style="font-size: 23.11184310913086px;font-family: MyriadPro-Regular, Myriad Pro">Class<tspan x="48.3" y="0" style="letter-spacing: -0.009993016574206285em">r</tspan><tspan x="55.63" y="0">oom 1</tspan></text> 
      <text transform="translate(314.96 95.84)" style="font-size: 23.11184310913086px;font-family: MyriadPro-Regular, Myriad Pro">Class<tspan x="48.3" y="0" style="letter-spacing: -0.009993016574206285em">r</tspan><tspan x="55.63" y="0">oom 2</tspan></text> 
      <text transform="translate(374.96 365.84)" style="font-size: 23.11184310913086px;font-family: MyriadPro-Regular, Myriad Pro">Class<tspan x="48.3" y="0" style="letter-spacing: -0.009993016574206285em">r</tspan><tspan x="55.63" y="0">oom 3</tspan></text> 
     </g> 
    </g> 
</svg> 

在foreach,打印許多元素RECT

結果是 enter image description here

+0

不知道你的數據庫設置等。所以你的classrom名稱列是'name_classroom'? coudl你不是簡單地稱所有的價值是真實的。 Classroom :: all() - > where('FIELD_NAME','sistemas 1'true) - > get();然後這應該得到所有那些只是迭代他們 –

回答

-1

嘗試和運行foreach語句你的觀點來回應每一個s vg在$ dataClassr數組中。

0

不知道,但嘗試爲我的評論嘗試改變first()get()

Classroom::all()->where('name_classroom', 'sistemas 1')->get();

由於第一,因爲它規定得到的第一個結果,如果youwant他們都使用get()選項。