Laravel цвет ячейки таблицы со значением ячейки - PullRequest
1 голос
/ 21 марта 2020

Это мой клинок l oop.

@for ($coun=0;$coun< $count_2; $coun++)
<table id="table2" border="1" style="display: inline-block;clear: both;">
        <tbody>
          <tr><td><?php print_r( $array_mem['id'][$coun]); ?></td></tr>
          <tr><td><?php print_r( $array_mem['Name'][$coun]); ?></td></tr>
          <tr><td><?php print_r( $array_mem['Mark'][$coun]); ?></td></tr>
          <tr><td><?php print_r( $array_mem['Sub_1'][$coun]); ?></td></tr>
          <tr><td><?php print_r( $array_mem['Sub_2'][$coun]); ?></td></tr>
          <tr><td><?php print_r( $array_mem['Sub_3'][$coun]); ?></td></tr>
        </tbody>
</table> @endfor

У меня есть набор условий для проверки значений в каждом столбце. а также изменить цвет ячейки зависит.

+-------------------+-------------+
| Condition         | Cell Colour |
+-------------------+-------------+
| If Id < 10        | Red         |
+-------------------+-------------+
| If Id>10 && Id<20 | Green       |
+-------------------+-------------+
| If Mark <20       | Red         |
+-------------------+-------------+
| If Mark >20       | Green       |
+-------------------+-------------+
| If Sub_1 < 20     | Red         |
+-------------------+-------------+

Есть ли способ проверить и сделать ячейку в заданном c цвете.

Ищу что-то, кроме использования условия if else, что означает использование функции или this .

Ответы [ 2 ]

1 голос
/ 21 марта 2020

Вы должны извлечь логи c где-то еще, а не делать if / else в представлении, и вы можете сделать это разными способами. Одним из подходов может быть создание вспомогательного файла и объявление вспомогательной функции и ее использование в поле зрения. Таким образом, чтобы сделать это, вы можете создать вспомогательный файл в app/Helpers/Helper.php, затем в ваш composer.json файл вы можете добавить запись в files раздел, например:

"autoload": {
    "classmap": [
        ...
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/Helpers/Helpers.php"
    ]
},

Затем в вашем * В файл 1007 * добавьте функцию, например:

if (!function_exists('getCellColor')) {
    function getCellColor($arg) {
        $cellColor = '';

        // Implement your login verifying the $arg...

        return $cellColor;
    }
}

Затем вы должны запустить composer dump-autoload из вашего terminal/command prompt. Теперь вы можете использовать эту функцию там, где вам нужно форматирование. Например:

<tr><td style="color: {{ getCellColor($array_mem) }}"></td></tr>

В этом случае вы можете вернуть что-то подобное из функции:

// ...

$cellColor = '';

// Verify and set the color...

$cellColor = 'red';

return $cellColor;

В качестве альтернативы, вы можете использовать / вернуть class например:

$cellColorClass = 'red';

// assign the right color class...

return $cellColorClass;

Вы можете использовать его следующим образом:

<tr><td class="{{ getCellColor($array_mem) }}"></td></tr>

В этом случае вам необходимо создать несколько css правил в новом или существующем css файле, например:

.red {
    color: red;
}

.green {
    color: green;
}

Вот и все. Это один из многих подходов, поэтому возьмите эту идею и используйте то, что, по вашему мнению, лучше для вас, но этот способ прост, ИМО.

1 голос
/ 21 марта 2020

Вы можете сделать мутатор из вашего model класса и добавить все свои логи c в

public function getCellColorAttribute(){
  $cellColor = "";
  if($this->id > 10 || $this->mark < 20 || $this->sub_1 < 20 ) 
        $cellColor = 'red';
  else 
        $cellColor = 'green';

  return $cellColor;
}

, теперь, когда вы повторяете эту модель в вашем view, вы можете получить доступ к этому новому атрибуту с cell_color

вы можете узнать больше о аксессорах и мутаторах здесь

...