Я собираю данные из angular с помощью метода ниже.

$result = RepairCategory::select('id','Name')->paginate(10);

Результат будет таким

enter image description here

Я хочу обработать массив данных с некоторыми условиями. Когда я пытаюсь сохранить данные в другой переменной.

$items = $result->data;

Его возвращающая ошибка вроде

Неопределенное свойство: Illuminate \ Pagination \ LengthAwarePaginator :: $ data

Я тоже пробовал

$items = $result['data'];

А также

$items = $result[0]->data;

Пожалуйста, предложите хороший способ получить это ...

0
Jishad 19 Окт 2016 в 08:46

3 ответа

Лучший ответ

Вы можете получить доступ к элементам по именам столбцов БД, таким как id и Name. а также

Вы должны написать цикл foreach для хранения всех записей в массиве,

$res = [];
foreach($result as $row){
$res[] = ['id'=>$row->id , 'Name' => $row->Name];
}

ИЛИ

Вы можете напрямую преобразовать объект в массив, используя toArray() < / strong>.

Справочные ссылки: -

https://laravel.com/docs/5.3/pagination

https://laravel.com/docs/5.3/eloquent-serialization#serializing-to-arrays

1
Ravi Hirani 19 Окт 2016 в 06:09

Чтобы получить массив массивов моделей (не уверен, что это правильное решение):

collect(YourModel::all()->paginate(20)->items())->toArray();

Чтобы получить массив объектов модели, просто выполните:

YourModel::all()->paginate(20)->items();
0
ymakux 21 Мар 2020 в 12:06

Итерируйте свой результат следующим образом.

foreach($result as $key => $value){
  echo $value->id;
  echo $value->name;
}
0
A J 19 Окт 2016 в 07:01