#laravel
Вопрос:
У меня есть простой ресурс:
lt;?php namespace AppHttpResourcesIntegrationPayGo; use IlluminateHttpResourcesJsonJsonResource; class VendaVenderResource extends JsonResource { public $preserveKeys = true; protected $method; public function paymentMethod(string $method = null) { $this-gt;method = $method; return $this; } /** * Transform the resource into an array. * * @param IlluminateHttpRequest $request * @return array */ public function toArray($request) { dd("ENTROU"); return [ 'id' =gt; $this-gt;id, ]; } }
Когда я создал простую службу, которая вызывает этот ресурс в середине кода, как это:
$vendaVenderResource = (new ResourcesIntegrationPayGoVendaVenderResource($entry)); dd("PASSOU");
Этот метод toArray() из ресурса не выполняется и не вводится в мой dd(«ENTROU»); для целей тестирования он выполняет этот dd(«PASSOU»); после ресурса я не знаю, почему!!
Что я делаю не так?
Комментарии:
1. потому
toArray
что его еще не вызвали … вам придется что-то сделать с ресурсом, чтобы вызвать этот метод … здесь вызывается только конструктор2. У меня есть аналогичный код в другом приложении, и он отлично работает, я не думаю, что в ресурсах мы передаем данные как конструкцию.
3. нет, вот почему … на данный момент этот метод никогда не вызывается
Ответ №1:
Вы не можете так называть свой ресурс. Ресурсы должны называться api (поэтому будет отправлен json-файл accept, и laravel должен знать, что возвращать ….
Если вы хотите использовать ресурсы таким образом, вам следует использовать метод resolve (new ResourcesIntegrationPayGoVendaVenderResource($entry))-gt;resolve();
Ps.: Entrou e passou — это так здорово, кккккк
Комментарии:
1. kkkkkkkkkkkkkk eu fui descobrir isso depois, quando coloquei na API funcionou :D. Спасибо, работайте хорошо!