Как раскрасить некоторые строки в списке результатов из базы данных? - PullRequest
1 голос
/ 25 июня 2019

У меня есть список объявлений для моего сайта.Я хотел бы иметь возможность визуально определить, является ли объявление все еще активным, основываясь на его цвете строки в списке index.ctp.У меня есть форма, которая контролирует каждую запись.В форме есть $ end_date.Цвет будет основан на этой дате.Не совсем зная, что я делаю, я подумал, что в моем AdsController понадобится какая-то функция для выполнения логики.Пожалуйста, дайте мне знать, если я на правильном пути.

Проблема сейчас в том, что никаких изменений цвета не появляется.Вот код:

public function getStatusColor($status_color) {
    $this->loadModel('Advertisements');
    $date = $this->Advertisements->get($end_date);
    $now = new DateTime();
        if($date < $now) {
            echo '#ff0000' ;
        } else {
            echo '#00ff00' ;
        }
}

В моем index.ctp это всего лишь часть кода списка, чтобы вы могли видеть, как я могу объединить цвет в таблицу

foreach($advertisements as $advertisement) {
        echo '<tr style="background-color: <?php echo $status_color; ?>;">';
        echo '<td>'.$advertisement->id.'</td>';
        echo '<td>'.$advertisement->title.'</td>';

Ответы [ 3 ]

1 голос
/ 25 июня 2019

Вам, вероятно, не нужна отдельная функция, чтобы сделать это, и вы выполняли действия в функции, которые действительно нужно было выполнить только один раз (например, получение текущих данных).Без созданной вами функции попробуйте это:

$this->loadModel('Advertisements');
$now = new DateTime();

foreach ($advertisements as $advertisement) {
    $date = $this->Advertisements->get($end_date);
    echo '<tr style="background-color: ' . ($date < $now ? '#ff0000' : '#00ff00') . '">';
    echo '<td>'.$advertisement->id.'</td>';
    echo '<td>'.$advertisement->title.'</td>';
}
0 голосов
/ 26 июня 2019

ОК, так как я новичок, я подумал об этом.Сделано это сделано только с этим.

 $now = new DateTime();
 echo '<tr style="background-color: '. ($advertisement->end_date < $now ? '#ff0000' : '#00ff00') .'">';

Спасибо за вклад всех!

0 голосов
/ 25 июня 2019

Ну, я не знаком с Cake PHP, но общее замечание - я не вижу, где вы вызываете функцию или возвращаете этот код цвета из функции.

Я ожидал, что $ advertising-> getStatusColor () в цикле for в index.php

и в функции

return ('# ff0000') или return ('# 00ff00');

Извините, если я ошибаюсь в интерпретации написанного вами кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...