Я не могу добавить строку ко всем значениям массива - PullRequest
0 голосов
/ 08 февраля 2020

Я новичок в разработке ِ APi с laravel Мне нужно вставить путь приложения в значение массива

   $halls = DB::table('halls')
            ->join('imagas','halls.id','=','imagas.id_Halls')
            ->select('halls.id','halls.hall_name','halls.hall_adress','halls.hall_details','price_hours','price_int','halls.hall_name','imagas.image_path')->where('halls.id',157)
            ->get();

    $results=[];

    foreach ($halls as $hall) {

    $array=json_decode($hall->image_path,true);
    if (is_array($array))
    {
       $hall->image_path = 'http://127.0.0.1:8000/Imaga_halls/'.$array;

        }
        array_push($results, $hall);
    }

    return response()->json($results);

    }

ошибка

ErrorException: преобразование массива в строку

Ответы [ 2 ]

0 голосов
/ 09 февраля 2020

После get() метода в построителе запросов вы получите коллекцию, так что вы можете использовать функцию map() для l oop каждого hall объекта.

и конкат пути префикса с изображением :

    $halls = DB::table('halls')
               ->join('imagas','halls.id','=','imagas.id_Halls')
               ->select('halls.id','halls.hall_name','halls.hall_adress','halls.hall_details','price_hours','price_int','halls.hall_name','imagas.image_path')
               ->where('halls.id',157)
               ->get();

    $results = $halls->map(function($hall) {
        $array = json_decode($hall->image_path, true);
        $hall->image_path = collect($array)->map(function($image) {
            return 'http://127.0.0.1:8000/Imaga_halls/'.$image;
        })->toArray();
        return $hall;   
    });

    return response()->json($results);
0 голосов
/ 08 февраля 2020
$hall->image_path = 'http://127.0.0.1:8000/Imaga_halls/'.$array;

Вы пытаетесь объединить массив в строку здесь.

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