2017-10-02 15 views
1

私はテーブルの内容を印刷しているブレードを持っています。 一部の列では、印刷している値に従ってCSSクラスを追加する必要があります。Laravel Bladeカスタム機能を使用する

など。それが「OK」の場合は、クラスGreenを追加します。それ以外の場合はクラスredを追加します。 もちろん、ロジックは複雑になりますが、ポイントはすべてのロジックがスタイルに関連するということです。

このタイプの機能/方法を保存するには、どの場所をお勧めしますか? モデルを作成する必要はありますか?

** UPDATE **

  <thead>          
       <tr>     
        <th> ID </th> 
        <th> Name </th> 
        <th> Last Checked </th> 
        <th> Status </th>      
       </tr>             
      </thead>              
      <tbody>  
       @foreach ($users as $u) 
        <tr>    
         <td> {{ $u->id }}</td> 
         <td> {{ $u->name }}</td> 
         <td> {{ $u->last_login }}</td> 
         <td> {!! statusWrapper($u->status) !!}</td> 
        </tr>    
       @endforeach              
      </tbody>                   
     </table>   

"statusWrapperは、" 私はステータス値を飾るために呼び出すしたい機能です。 だから状況は数であり、状況は、私はあなたがあなたのテーブルビューで@include

// resources/views/statusWrapper 
@if($status == 'good') 
    <span style="color: green;">thats really good</span> 
@else 
    <span style="color: red;">not good</span> 
@endif 

してから使用をお勧めします異なる色を示すようにHTMLを含める必要がある場合は出力が<span class="..."> .... </span>

+0

単純なロジックの場合は、ビューに入れますか? – ProEvilz

+1

なぜモデルが必要ですか?非常にシンプルです。あなたが実装したいくつかのコードを共有してください。 –

+1

@ ProEvilz、ロジックがもう少し複雑であれば、それは1つ以上のビューと共有することができますか? –

答えて

1

ようになります

@foreach ($users as $u) 
<tr>    
    <td> {{ $u->id }}</td> 
    <td> {{ $u->name }}</td> 
    <td> {{ $u->last_login }}</td> 
    <td> 
     @include('statusWrapper', ['status' => $u->status]) 
    </td> 
</tr>    
@endforeach 

また、拡張ブレードで見ることができる:https://laravel.com/docs/5.5/blade#extending-blade

しかし、私はrecommません。将来の編集のためにHTMLをビューファイルに保存する方が簡単なので、PHPコードにHTMLを挿入することを終了します。

2

私はいつも自分自身のことをお勧めします。モデルを作成する必要はありません。ヘルパーファイルを作成してカスタム関数をすべて記述するだけです。たとえば、helper.phpというファイルをapp/Http/Helpers/パスに作成することができます。次に、プロジェクトにこのファイルを認識させる必要があります。これを行うには、あなただけの自動ロードであなたのcomposer.jsonファイルにそれを追加する必要があります - >ファイルには、このようなオブジェクト:この後

"autoload": { 
    "files":[ 

     "app/Http/Helpers/helper.php" 
    ] 
} 

はちょうどコマンド作曲ダンプのautoloadを実行します。これで、どこからでもhelper.phpファイルにあるカスタム関数にアクセスできます。

関連する問題