Маршрут не получает правильный формат URL в API - PullRequest
0 голосов
/ 31 октября 2018

Я новичок в Laravel Rest API. При попытке обучения я получил эту ошибку, указав ссылку на следующий маршрут.

{  
    "data":{  
        "name":"mollitia",
        "totalPrice":307.44,
        "rating":5,
        "href":{  
            "reviews":"http:\/\/127.0.0.1:8000\/api\/product\/5\/reviews"
        }
    }
}

Мне нужно получить href для отзывов, как,

"reviews":"http://127.0.0.1:8000/api/products/5/reviews"

Ресурс

<?php
namespace App\Http\Resources\Product;
use Illuminate\Http\Resources\Json\Resource;
class ProductResource extends Resource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request
     * @return array
     */
    public function toArray($request)
    {
        return [
            'name' => $this->name,
            'totalPrice' => round(( 1 - ($this->discount/100)) * $this->price,2),
            'rating' => $this->reviews->count() > 0 ? round($this->reviews->sum('star')/$this->reviews->count(),2) : 'No rating yet',
            'href' => [
                'reviews' => route('reviews.index',$this->id)
            ]
        ];
    }
}

Что я сделал не так?

1 Ответ

0 голосов
/ 31 октября 2018

Попробуйте ниже код, вы можете просто расширить JsonsResource </p> <pre><?php namespace App\Http\Resources\Product; use Illuminate\Http\Resources\Json\JsonResource; class ProductResource extends JsonResource { /** * Transform the resource into an array. * * @param \Illuminate\Http\Request $request * @return array */ public function toArray($request) { return [ 'name'=>$this->name, 'totalPrice' =>round((1-($this->discount/100))* $this->price,2) , 'raiting'=>$this->reviews->count() > 0 ? round($this->reviews->sum('star')/$this->reviews->count(),2) : 'No rating yet', 'href' =>[ 'reviews'=>route('reviews.index',$this->id) ] ]; } }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...