Включить связанную таблицу из сводной таблицы в Fractal's Transformers - PullRequest
0 голосов
/ 12 декабря 2018

В моем проекте Laravel у меня есть 4 таблицы:

  • location
  • location_product
  • product
  • status

location_product - это промежуточная таблица между местоположением и продуктом, имеющая внешний ключ status, указывающий на таблицу product_status.

Я использую преобразователи Fractal для преобразования моих моделей:

    //Filter the products
    $products = $location->products()->unarchived()->get();

    return $this->response()->collection($products, new ProductDetailsTransformer());

и в моем ProductDetailsTransformer.php я хочу включить статус из промежуточной таблицы, используя '' 'defaultInclude' '':

/**
 * List of resources to automatically include
 */
protected $defaultIncludes = [
    'status',
];

public function includeStatus(Product $product) {
    return $this->item($product->pivot->status, new ProductStatusTransformer());
}

, но я получаю

Вызов неопределенного отношения [status] для модели [App \ Models \ Product].

Как правильно включить таблицу состояния с использованием преобразователей Fractal?

В данный момент я использую следующее:

public function transform(Product $product) {
    return [
        'id' => (int)$product->id,
        'name' => $product->name,
        'amount' => $product->pivot->amount,
        'delivery_on_site' => (bool)$product->pivot->delivery_on_site,
        'status' => [
            'id' => $product->pivot->status->id,
            'name' => $product->pivot->status->name
        ]
    ];
}

Но я бы хотел использовать Трансформатор, если это возможно для статуса.

...