php - Laravel 分形 可选字段

标签 php laravel

我在我的小项目中使用分形,这是我的代码:

public function transform(Series $series) {
    return [
      'id' => $series->id,
      'title' => $series->title,
      'url' => $series->url,
      'description' => $series->description,
      'thumbnail_hd' => $series->thumbnail_hd,
      'thumbnail_wide' => $series->thumbnail_wide,
      'views' => $series->views
    ];

  }

我想让views(这是一个int)可选,并且除非请求,否则不返回 View - 因为该字段基于关系并且会增加处理时间。

我想将其用作关系(这样我就可以在需要时包含特定字段):

// in transformer
  public function includeUser(Series $series) {
    return $this->item($series->user, new UserTransformer);
  } 

// in controller
return fractal()
        ->item($series)
        ->parseIncludes(['user'])
        ->transformWith(new SeriesTransformer)
        ->toArray();

但只是一个整数而不是整个数据数组。可以使用分形吗?

最佳答案

您可以执行以下操作

    public function transform(Series $series) {
      $return = [
        'id' => $series->id,
        'title' => $series->title,
        'url' => $series->url,
        'description' => $series->description,
        'thumbnail_hd' => $series->thumbnail_hd,
        'thumbnail_wide' => $series->thumbnail_wide,
      ];
      if ($series->views > 0) {
        $return['views'] = (int) $series->views;
      }
      return $return;
    }

不过我不建议这样做。我通常只会将浏览次数返回为 0。 如果您担心数据库性能,您的应用程序无论如何都必须计算 View 数才能知道它们是否大于 0。

如果您担心客户端性能,那么对于单个键值对来说这并不重要。

关于php - Laravel 分形 可选字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43812469/

相关文章:

php - Codeigniter 的 redirect() 和非标准 url

php - 获取最后 x 条记录的最佳方法是什么?使用 MySQL 限制和 ORDER DESC?

php - 优步吃到与laravel和mysql的集成,如何像mysql表一样保存json post数据?

php - Laravel 路由检查多个字符串

laravel - Fish shell中的路径设置

javascript - 加载文件,通过电子邮件发送并停留在同一页面上

javascript - 点击放大图片

php - SQL connect.php 安全风险?

javascript - 重新加载自调用函数

laravel - 使用证书限制对 Laravel 登录页面的访问