【问题标题】:Fractal parseIncludes not working分形解析包括不工作
【发布时间】:2016-01-06 10:27:32
【问题描述】:

我正在为我的 Web 应用程序使用 Laravel 框架,使用雄辩的数据模型和 Fractal 来转换一些数据。

我想使用分形的parseIncludes 功能,但尽管遵循了文档,但我似乎无法让它工作。

这是我的代码:

StudentTransformer.php

class StudentTransformer extends Fractal\TransformerAbstract
{

    protected $availableIncludes = [
        'course'
    ];

    public function transform(Student $student)
    {
        return [
            'name'           => $student->name,
            // other attributes
        ];
    }

    public function includeCourse(Student $student)
    {
        $course = $student->course;

        return $this->item($course, new CourseTransformer);
    }

}

CourseTransformer.php

class CourseTransformer extends Fractal\TransformerAbstract
{
    public function transform(Course $course)
    {
        return [
            'name' => $course->name
            // other attributes
        ];
    }
}

在我的一个控制器中:

$student = App\Models\Student::first();

$fractal = new \League\Fractal\Manager();

$fractal->parseIncludes('/student?include=course');

$fractal->setSerializer(new \League\Fractal\Serializer\ArraySerializer());

$response = new \League\Fractal\Resource\Item($student, new \App\Transformers\Models\StudentTransformer);

return response()->json($fractal->createData($response)->toArray());

此外,当我从 StudentTransformer 中删除 availableIncludes 并改用 defaultIncludes 时,如下所示:

protected $defaultIncludes = [
    'course'
];

效果很好?!不知道为什么!任何帮助将不胜感激。

【问题讨论】:

    标签: php laravel serialization


    【解决方案1】:

    修复它。为了他人的利益,问题出在这里:

    $fractal->parseIncludes('/student?include=course');
    

    应该是:

    $fractal->parseIncludes('course');
    

    【讨论】:

      猜你喜欢
      • 2011-01-20
      • 1970-01-01
      • 2017-10-22
      • 2014-07-20
      • 2013-03-22
      • 1970-01-01
      • 2017-06-01
      • 2011-08-11
      • 2018-02-08
      相关资源
      最近更新 更多