как получить данные из вспомогательной функции в формате desire?


как получить данные из вспомогательной функции в формате desire?

29.09.2020 05:27:21 Просмотров 42 Источник

я сделал файл helper.php а потом сделал класс, в нем есть функция, которая возвращает все категории. что я хочу сделать, так это получить категории и шоу в выпадающем меню. но я не знаю, как это сделать.

<?php
    namespace App\helpers;
    use App\category;
    use Illuminate\Support\Facades\DB;
    
    class Helper
    {
        public static function shout(string $string)
        {
            return strtoupper($string);
        }
        public static function categories()
        {
            $obj = category::all();
            return $obj;
        }
    }

?>

Это вспомогательный класс.

{!!Helper::categories()!!} 

Вот как я вызываю функцию в шаблоне.

[
 {"id":1,"name":"samsung","created_at":"2020-09-18T11:08:47.000000Z","updated_at":"2020-09-18T11:08:47.000000Z"}, 
 {"id":2,"name":"nokia","created_at":"2020-09-18T11:08:51.000000Z","updated_at":"2020-09-18T11:08:51.000000Z"}, 
 {"id":3,"name":"iphone","created_at":"2020-09-18T11:08:55.000000Z","updated_at":"2020-09-18T11:08:55.000000Z"}
]

Он возвращает такие данные. но я хочу только название категории и хочу показать в выпадающем меню. Пожалуйста, скажите мне, как это сделать

У вопроса есть решение - Посмотреть?

Ответы - как получить данные из вспомогательной функции в формате desire? / how to get data from helper function in a desire format?

Dragonsnap

29.09.2020 05:33:19

Вместо того чтобы печатать JSON пользователю, попробуйте использовать Blade, чтобы превратить ответы в выпадающий список. Что-то вроде этого:

<select name = "name">
@foreach(Helper::categories() as $element)
    <option value = "{{ $element->name }}>" {{ $element->name }} </option>
@endforeach
</select>

Что бы сделать что-то вроде этого:

<select name = "name">
    <option value = "samsung"> samsung </option>
    <option value = "nokia"> nokia</option>
    <option value = "iphone"> iphone </option>
</select>
Lounis

29.09.2020 05:58:39

Если вы хотите только вернуть имя категории в своей функции, вы можете попробовать сделать это следующим образом :

public static function categories()
{
    $obj = category::all();

    return \array_map(
        function($category) { 
            return $category->getName(); 
        },
        $obj
     );
}

Таким образом, вы возвращаете массив имен для каждой итерации категорий.

Помочь в развитии проекта:
Закрыть X