Почему мой ресурс на Laravel работает не так, как ожидалось?

#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. Спасибо, работайте хорошо!