Я хочу добавить аксессор к модели в 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.
Я ищу лучший подход для этого.
Очень хорошо, но как мы можем написать метод, если нам приходится использовать многострочные команды в аксессорах?
Не могли бы вы отформатировать Vertadate, не сохраняя его в переменную? Это сэкономит вам одну строку
Допустим, я мог бы это сделать. Но действительно, в подобной ситуации, что мы можем сделать, если нам нужна какая-то операция для получения результатов?
Тогда вам просто нужно будет использовать обычную анонимную функцию вместо функции стрелки. Таким образом: function () { }
Отвечает ли это на ваш вопрос? Как написать несколько выражений в стрелочных функциях PHP






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, если один код строки не может решить эту проблему.
Я рекомендую вам не публиковать только код в качестве ответа, но также предоставлять объяснение того, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением, как правило, более полезны и качественны, и с большей вероятностью привлекут положительные голоса.
Насколько я знаю, вы можете использовать только однострочные выражения в функции Arrow.