Как я могу вызвать функцию вспомогательного класса в представлении - Laravel 5.8? - PullRequest
4 голосов
/ 20 июня 2019

У меня есть класс помощника DateHelper

enter image description here

У меня есть один fn

public static function getAgo($date) {

    if ($date) {

        $ts = time() - strtotime(str_replace("-","/",$date));

        if($ts>31536000) $val = round($ts/31536000,0).' year';
        else if($ts>2419200) $val = round($ts/2419200,0).' month';
        else if($ts>604800) $val = round($ts/604800,0).' week';
        else if($ts>86400) $val = round($ts/86400,0).' day';
        else if($ts>3600) $val = round($ts/3600,0).' hour';
        else if($ts>60) $val = round($ts/60,0).' minute';
        else $val = $ts.' second';

        if($val>1) $val .= 's';

        return $val;


    }

}

Я хочу использовать его в моем представлении следующим образом

{{ DateHelper::getAgo($log->createdAt) }}

Я продолжал получать

Класс DateHelper не найден (Просмотр: ...

Я пытался включить его поверх моего index.blade.php вот так

<?php use App\DateHelper; ?>

Может кто-нибудь помочь мне?

Ответы [ 2 ]

8 голосов
/ 20 июня 2019

Вы можете добавить псевдоним в config/app.php:

'aliases' => [
    // ...
    'DateHelper' => App\DateHelper::class,
],

Тогда, на ваш взгляд, вы можете просто сделать:

{{ DateHelper::getAgo($log->created_at); }}
5 голосов
/ 20 июня 2019

Если оператор use не работает в представлении, вы всегда можете использовать встроенное пространство имен:

{{ \App\DateHelper::getAgo($log->created_at) }}

Убедитесь, что класс находится в правильном пространстве имен и имеет правильный класс / имя файла, и вы должны быть в порядке.

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