Использовать функцию многострочной стрелки в методе доступа в моделях laravel

Я хочу добавить аксессор к модели в laravel, где я могу изменить формат поля created_at на дату jalali через пакет Verta.

Я знаю, что мы можем использовать функцию стрелки следующим образом:

protected function createdAt(): Attribute
{
    return Attribute::make(
        get: fn (string $value) =>
            $vertaDate = Verta::instance($value);
            $vertaDate->format('Y/m/d H:i:s')
        ,
    );
}

Необходимо использовать мультивыражение в функции стрелки метода get.

Я ищу лучший подход для этого.

Насколько я знаю, вы можете использовать только однострочные выражения в функции Arrow.

Oskar Mikael 15.05.2023 12:10

Очень хорошо, но как мы можем написать метод, если нам приходится использовать многострочные команды в аксессорах?

Ahmad Badpey 15.05.2023 12:19

Не могли бы вы отформатировать Vertadate, не сохраняя его в переменную? Это сэкономит вам одну строку

Oskar Mikael 15.05.2023 12:22

Допустим, я мог бы это сделать. Но действительно, в подобной ситуации, что мы можем сделать, если нам нужна какая-то операция для получения результатов?

Ahmad Badpey 15.05.2023 13:47

Тогда вам просто нужно будет использовать обычную анонимную функцию вместо функции стрелки. Таким образом: function () { }

Oskar Mikael 15.05.2023 14:28

Отвечает ли это на ваш вопрос? Как написать несколько выражений в стрелочных функциях PHP

OMi Shah 16.05.2023 20:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
protected function createdAt(): Attribute
{
    return Attribute::make(
        get: fn (string $value): string => (Verta::instance($value))->format('Y/m/d H:i:s')
        ,
    );
}

Вот как вы можете закодировать его с помощью функции короткой стрелки.

Или вы можете использовать предложение https://stackoverflow.com/users/15040689/oskar-mikael, если один код строки не может решить эту проблему.

Я рекомендую вам не публиковать только код в качестве ответа, но также предоставлять объяснение того, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением, как правило, более полезны и качественны, и с большей вероятностью привлекут положительные голоса.

Mark Rotteveel 16.05.2023 16:01

Другие вопросы по теме