L03 Laravel 教程 - 实战构架 API 服务器 在 7.3 回复列表中,不能进行嵌套关联返回信息
单独的使用 include=topic、include=user 都可以返回内容,但是include=topic.user 时候只有 topic 的内容没有 user 的嵌套内容
Transformer
namespace App\Transformers;
use App\Models\Reply;
use League\Fractal\TransformerAbstract;
class ReplyTransformer extends TransformerAbstract
{
protected $availableIncludes = ['user', 'topic'];
public function transform(Reply $reply){
return [
'id' => $reply->id,
'user_id' => (int) $reply->user_id,
'topic_id' => (int) $reply->topic_id,
'content' => $reply->content,
'created_at' => $reply->created_at->toDateTimeString(),
'updated_at' => $reply->updated_at->toDateTimeString(),
];
}
public function includeUser(Reply $reply) {
return $this->item($reply->user, new UserTransformer());
}
public function includeTopic(Reply $reply) {
return $this->item($reply->topic, new TopicTransformer());
}
}
Controller
public function userIndex(User $user) {
$replies = $user->replies()->paginate(10);
return $this->response->paginator($replies, new ReplyTransformer());
}
URL
http://larabbs.test/api/users/22/replies?include=topic.user
Topic Model
User Model
推荐文章: