Использование неопределенного постоянного идентификатора - предполагается «идентификатор» (это вызовет ошибку в будущей версии PHP) - PullRequest
0 голосов
/ 05 мая 2020

У меня есть jsonresource, но он говорит, что идентификатор константы undefined

class DashboardGraphDataResource extends JsonResource
{

   public function toArray($request)
   {
    return [
        'id' => id,
        'technology' => technology,
        'area' => area,
        'totalCapacity' => total_capacity,
        'working' => working,
        'fileDate' => file_date,
        'created_at' => created_at,
        'updated_at' => updated_at,
    ];
}

}

Код внутри моего контроллера

return DashboardGraphDataResource::collection(DashboardGraphData::all());

Но когда я возвращаю DashboardGraphData :: all (), не помещая его в DashboardGraphDataResource :: collection (), результат отображается.

[{"id":1,"technology":"tech1","area":1,"total_capacity":"2936","working":936,"file_date":"2020-01-05","created_at":"2020-05-05 03:47:27","updated_at":"2020-05-05 03:47:27"}]

Есть ли что-то не так с моим запросом? Помогите мне: (

Ответы [ 3 ]

2 голосов
/ 05 мая 2020

используйте $this->id вместо id

return [
        'id' => $this->id,
        'technology' => $this->technology,
        'area' => $this->area,
        'totalCapacity' => $this->total_capacity,
        'working' => $this->working,
        'fileDate' => $this->file_date,
        'created_at' => $this->created_at,
        'updated_at' => $this->updated_at,
    ];
0 голосов
/ 05 мая 2020

Это скорее ошибка PHP, чем ошибка Laravel. Я объясню несколько вещей.

Константы и локальная переменная:

Ваша функция принимает параметр с именем $request. Параметр запроса содержит всю информацию, которую вы ему передаете. И я предполагаю, что вы передаете массив или объект, который содержит ключи / свойства id, technology, area, total_capacity, working, file_date, created_at и updated_at.

Проблема вашего кода в том, что вы вызываете константу в каждом из значений массива, которые пытаетесь заполнить. Константы в PHP - это имена или идентификаторы с фиксированными значениями. Они похожи на переменные, за исключением того, что после определения их нельзя изменить / изменить.

Константы начинаются с буквы или подчеркивания в PHP, и перед константой нет знака $ name.

В вашем случае, я думаю, вы пытаетесь получить доступ к значению свойства / ключа из объекта / массива $request.

Вы можете получить к ним доступ, выполнив $request->property_name_here или $request['key_name_here'] и заполните свой массив значениями. Надеюсь, это поможет.

0 голосов
/ 05 мая 2020

используйте $ request-> id insted id

return [
    'id' => $request->id,
    'technology' => $request->technology,
    'area' => $request->area,
    'totalCapacity' => $request->total_capacity,
    'working' => $request->working,
    'fileDate' => $request->file_date,
    'created_at' => $request->created_at,
    'updated_at' => $request->updated_at,
];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...