【问题标题】:Eloquent returning extra records雄辩的返回额外记录
【发布时间】:2014-08-11 03:32:57
【问题描述】:

我已经为 Eloquent 定义了这样的模型:

<?php

class Order extends Eloquent {
    public $timestamps = false;
    protected $fillable = ['station_id', 'created', 'due', 'month', 'comments', 'name', 'ud', 'dp', 'swrv', 'sh', 'jmsw', 'sw', 'prrv', 'mhsw', 'bmsw', 'mp', 'pr', 'st', 'total_points'];
}

?>

因此,可填充数组中列出了 19 列。当我调用Order::find($id) 并从restler 方法返回时,编码的JSON 对象具有我所有的可填充列及其正确的值和20 个附加项,其中键是索引,因此station_id 列在1 键下,created 列在a 下2键等...

如何让它不返回那些编号的值而只使用 $fillable 值?

【问题讨论】:

  • 这不是 Eloquent 的事情,对吧?我不知道 Restler,但请检查它是如何工作的,因为 Laravel 没有这样做。

标签: laravel-4 eloquent restler


【解决方案1】:

你错了!

fillable 属性用于将可以通过提供数据数组填充的内容列入白名单

为了避免在输出中返回少数字段,您可以使用hidden 属性来提供黑名单。

从 Laravel 4.2.8 开始,您可以使用visible 属性指定白名单,如下所示。

class Order extends Eloquent {
    public $timestamps = false;
    protected $fillable = ['station_id', 'created', 'due', 'month', 'comments', 'name', 'ud', 'dp', 'swrv', 'sh', 'jmsw', 'sw', 'prrv', 'mhsw', 'bmsw', 'mp', 'pr', 'st', 'total_points'];
    protected $visible = ['station_id', 'created', 'due', 'month', 'comments', 'name', 'ud', 'dp', 'swrv', 'sh', 'jmsw', 'sw', 'prrv', 'mhsw', 'bmsw', 'mp', 'pr', 'st', 'total_points'];
}

【讨论】:

  • 非常感谢。 $fillable 对我来说仍然有点令人困惑。
【解决方案2】:

您可以使用以下代码指定要从模型中的数据库中检索哪些列。

public function profile() {
  return $this->belongs_to('profile')->select(array('id', 'profilename'));
}

【讨论】:

    猜你喜欢
    • 2017-05-14
    • 2016-11-25
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2020-02-18
    • 2023-02-04
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多