Привет. Сначала я получаю данные из базы данных в виде массива, затем я хочу преобразовать данные массива в объект. Я пробовал много функций, но не работал в laravel API. Я хочу преобразовать данные массива в объект и вернуть как JSON для API. Я гуглил несколько время, но не нашел никаких решений, никакой помощи тела заранее спасибо.
для API я использую это
return response()->json(['data' => $categories, 'status_code' => 200, 'status' => true],200);
я пытался
категория представляет собой массив $categories
$data_object = (object)$categories;
$data_array = (array)$categories;
дд ($ data_array); дд ($ data_object);
оба возвращают одинаковый результат
это результат
array:14 [
37 => array:5 [
"id" => 37
"name" => "Red abya"
"alias" => "red-abya"
"is_featured" => 0
]
38 => array:5 [
"id" => 38
"name" => "Black Dress"
"alias" => "black-dress"
"is_featured" => 0
]"is_featured" => 0
]
1 => array:6 [
"id" => 1
"name" => "Abayas"
"alias" => "abayas"
"is_featured" => 1
"sub_categories" => array:2 [
0 => array:5 [
"id" => 37
"name" => "Red abya"
"alias" => "red-abya"
"is_featured" => 0
]
1 => array:5 [
"id" => 36
"name" => "White abaya"
"alias" => "white-abaya"
"is_featured" => 0
]
]
]
25 => array:5 [
"id" => 25
"name" => "Discount"
"alias" => "discount"
"is_featured" => 0
]
]
результат отображается четко и массив
То, как вы разместили данные, делает их похожими на строку в кодировке json. Убедитесь, что это действительно массив. Вы можете использовать функцию is_array(), чтобы проверить это.
Проверьте мой ответ, пожалуйста.






Если вы хотите JSON в конце, вы можете попробовать изменить это:
$data_object = (object)$categories;
к
$data_object = (object)$categories;
$data_object->toJson();
dd($data_object);
Я предполагаю, что $categories — это массив коллекций. Тогда, на ваш взгляд, вы можете json_encode($data_object).
@ShahidHussain, тогда это сработает для вас. Дайте мне знать, если есть какие-либо ошибки.
приведенный выше раздел результатов при возврате
Вы уверены, что не конвертируете его обратно в массив? $data_object = (object)$categories; $data_array = (array)$categories;, вы должны просто использовать Object, но во 2-й строке вы снова конвертируете в массив?
используйте эти две категории $data_object = (object)$; $data_array = (массив)$категории; один за другим не одновременно
если вы используете почтальона, вы отправляете и получаете данные в формате json. поэтому для этого вы можете использовать json_encode() для преобразования данных в формат json и json_decode() для преобразования данных в формат array(). также в laravel вы получаете данные по экземплярам запроса и отправляете ответ помощником response(), поэтому, если вам нужно получить данные в формате массива, вы можете использовать это: $data_array = (массив)$запрос->все() и для отправки данных: ответ()->json($data_array, 200);
если вы хотите использовать стандартный класс (объект) вместо массива
посмотрите мою функцию для запроса следующим образом: public function test(Request $req){$data_array = (array)$req->all(); вернуть ответ()->json(['data' => $data_array],200); }
код возвращает идеальный результат, который я хочу, но я просто хочу преобразовать в объект, который все братан
object(stdClass)#257 (3) { ["id"]=> строка(1) "6" ["имя"]=> строка(15) "ifoooooooooooo" ["код"]=> строка(3) " 500" } это мой результат после использования (объекта) для кастинга для $request->all()
Попробуй это
$categories = array_map(function($categories){
return (object)$categories;
}, $categories);
я просто хочу преобразовать массив $category в объект, братан
Проверьте, является ли
$categories;массивом или нет?