根据数据库标志更改元素样式

时间:2017-02-17 14:10:34

标签: php laravel-5

我有一张带有几个旗帜的桌子:

Foo:迁移

Schema::create('foo', function(Blueprint $table)
   {
      $table->increments('id')->unsigned();                            
      $table->string('field_1', 10);
      $table->string('field_2', 10);
      $table->boolean('flag_1')->default(0);
      $table->boolean('flag_2')->default(0);
      $table->boolean('flag_3')->default(0);
      $table->timestamps();
    });  

我有一种使用laravel关系无法实现的复杂查询,(BelongsToBelongsToMany等...)。所以我在Foo's Model里面这样做了:

public function myFunc($filterOne, $filterTwo)
   {
      SELECT
      table1.id, table1.name,
      table2.id, table2.week_day,            
      table3.id,
      table4.date
      FROM table1
      LEFT JOIN table2 ON table2.id = table1.table2_id
      LEFT JOIN table3 ON table2.table3_id = table3.id
      LEFT JOIN table4 ON table3.id = table4.table3_id
      WHERE table1.cod_field='.$filterOne.' AND table3.date = "'.$filterTwo . '"
   }  

我需要的是:
每当其中一个标志为真时,我需要通过更改图标的颜色来引起用户的注意(这是我发现的最好的方法)。

由于我使用的是QueryBuilder而不是Eloquent所以我无法使用Laravel的Accessors

以下是包含图标的HTML:

@foreach($obj->myFunc($obj->field1, $obj->field2) AS $disc)
   <i class="{{ $disc->flag_1 }} flag fa fa-check fa-lg"></i>
   <i class="{{ $disc->flag_2 }} flag fa fa-camera-retro fa-lg"></i>
@endforeach

我想写一个CSS类,而不是写标志的值(0/1) 这样我可以改变它的颜色来引起用户的注意。但是怎么样?

Obs1:我知道我可以做出更好的数据库关系,但不幸的是 我不能参与这个项目。

0 个答案:

没有答案