2017-04-27 5 views
0

私は最高のタイトルが何であるかを実際には分かりませんでしたが、ここで達成したいものがあります。ol(html)のようなものを作成しますが、検索結果に応じて

私がしたいことは、最初の列を検索結果に番号を付けるhtmlの 'ol'のようにすることです。

<table class="table table-bordered" style="text-align: left;"> 
    <tr>        
     <th>Full Name (Last, First, Middle)</th>           
     <th>Encoded by</th> 
    </tr> 
    <tbody> 
     {!! $searchresults !!} 
    </tbody> 
</table> 

をそして、これは私が私のコントローラで何をすべきか、だから、新しい番目のコードを挿入した後、私のコントローラ

public function listofStaffTable(){ 
    $staffs = DB::table('staff_profiles')->select('last_name','first_name','middle_name','encoded_by')->orderBy('last_name','ASC')->get();    
    $searchresults = ""; // define the searchresults variable  
    foreach($staffs as $key => $profile){      
     $searchresults .= '<tr>'.       
     '<td><a href="'. URL::route('viewstaffprofile', $profile->id) .'">'. $profile->last_name .' '. $profile->first_name .' '. $profile->middle_name .' </a></td>'. 
     '<td>'. $profile->encoded_by .'</td>'. 
     </tr>'; 
    } 
    $data = [];  
    $data['searchresults'] = $searchresults;    
    return view('user/masterlist/list-of-staffs', $data); 
} 

です:

は、私は私の刃でこれを持っています。

これは

答えて

0

ブレードテンプレートによってLaravel 5.2を使用している:あなたがあなたの目標を達成しようとする方法はに対してビットです

public function listofStaffTable() 
{ 

    $staffs = DB::table('staff_profiles')->select('last_name','first_name','middle_name','encoded_by')->orderBy('last_name','ASC')->get();   

    $searchresults = ""; // define the searchresults variable 

    $i = 1; // just use a integer that increments when iterating over results 

    foreach($staffs as $key => $profile) 
    {   
     $searchresults .= '<tr>'.  
     '<td>'.$i.'.</td>'.      
     '<td><a href="'. URL::route('viewstaffprofile', $profile->id) .'">'. $profile->last_name .' '. $profile->first_name .' '. $profile->middle_name .' </a></td>'. 
     '<td>'. $profile->encoded_by .'</td>'. 
     '</tr>'; 
     $i++; 
    } 

    $data = [];  
    $data['searchresults'] = $searchresults; 

    return view('user/masterlist/list-of-staffs', $data); 
} 
+0

ありがとうございます!非常に簡単です:) –

+2

これは、ブレードの全体の点を完全に無視しています。特定のロジックをコントローラに配置することは想定されていません。 BladeにはVikingCodeの答えで指定された@foreachキーワードがあります。 –

+0

@RodneyZanoriaあなたの質問は「私のコントローラーで何をすべきか」で、「何ができるのか」ではありませんでした。あなたはErolが提案したことを行うことができますが、私の答えには – VikingCode

1

<table class="table table-bordered" style="text-align: left;"> 
    <tr> 
     <th>Order</th>        
     <th>Full Name (Last, First, Middle)</th>           
     <th>Encoded by</th> 
    </tr> 
    <tbody> 
     {!! $searchresults !!} 
    </tbody> 
</table> 

そして、あなたのコントローラで「ベストプラクティス」最善のアプローチは、より良い責任をカプセル化することです。 (HTMLの生成は、あなたのコントローラに表示し、ロジックに属している)

だから、それはあなたがあなたのhtml

を反復して生成すると仮定していることがあります...あなたのコントローラからすべてのHTMLを削除し、あなたのビューで発生(反復)の一部を行います
public function listofStaffTable() 
{  
    $staffs = DB::table('staff_profiles') 
       ->select('last_name','first_name','middle_name','encoded_by') 
       ->orderBy('last_name','ASC') 
       ->get();   

    $data = [];  
    $data['searchresults'] = $searchresults; 

    return view('user/masterlist/list-of-staffs', $data); 
} 

<table class="table table-bordered" style="text-align: left;"> 
    <tr> 
     <th>Order</th>        
     <th>Full Name (Last, First, Middle)</th>           
     <th>Encoded by</th> 
    </tr> 
    <tbody> 
     @foreach ($searchresults as $key => $profile) 
      <tr> 
       <!-- The current loop iteration (starts at 1). --> 
       <td> {{ $loop->iteration }} </td> 
       <td> 
        <a href="{{ route('viewstaffprofile', $profile->id) }} "> 
         {{ $profile->last_name }} {{ $profile->first_name }} {{ $profile->middle_name }} 
        </a> 
       </td> 
       <td> {{ $profile->encoded_by }} </td> 
      </tr> 
     @endforeach 
    </tbody> 
</table> 

私はちょうどあなたのアイデアを与えるために編集し、コードをテストしませんでした。

関連する問題