我在Laravel项目中使用Transformer。当我在Transformer中不包含其他对象时,没有任何问题,但是当我包含Customer
对象时,我收到以下错误:
传递给App \ Transformers \ CustomerTransformer :: transform()的参数1必须是App \ Models \ Customer的实例,给定布尔值,在/ home / vagrant / Code / project / vendor / league / fractal / src /中调用第365行的Scope.php并定义了
当我从Scope.php
打印对象时,其中没有任何布尔值。可能是什么问题呢? (代码在审核#298
后崩溃。
我如何调用代码:
$reviews = $this->review->paginate();
$transformer = new ReviewTransformer();
$with = $request->get('with', null);
if($with) {
$with = explode(';', $with);
$transformer->parseIncludes($with);
}
return $this->response->paginator($reviews, $transformer);
答案 0 :(得分:4)
解决了这个问题,我是个白痴......
我在Transformer课程中有以下内容:
public function includeCustomer(Review $review)
{
$customer = $review->customer;
return $this->collection($customer, new CustomerTransformer);
}
问题是$customer
是一个项而不是一个集合。我必须将this->collection
更改为this->item
。