【问题标题】:Laravel - Hide model properties in collectionLaravel - 在集合中隐藏模型属性
【发布时间】:2018-02-20 02:09:07
【问题描述】:

有没有办法在 Laravel 集合中隐藏模型的属性,例如表、连接、primaryKey 等,并且只保留表的属性/列?

                        [table:protected] => product
                        [connection:protected] => mysql
                        [primaryKey:protected] => id
                        [keyType:protected] => int
                        [incrementing] => 1
                        [with:protected] => Array
                            (
                            )

                        [withCount:protected] => Array
                            (
                            )

                        [perPage:protected] => 15
                        [exists] => 1
                        [wasRecentlyCreated] => 
                        [attributes:protected] => Array
                            (
                                ...
                            )

                        [original:protected] => Array
                            (
                                ...
                            )
                       ...
                    )

【问题讨论】:

  • 如果您愿意,请致电 ->toArray() 收集收藏
  • 隐藏它们以防什么?如果您希望它们从 JSON 响应中隐藏,请在模型中使用 protected $hidden = ['foo']; 来隐藏属性。 laravel.com/docs/5.6/…

标签: laravel eloquent


【解决方案1】:

您不需要这样做,因为这些是 Eloquent 模型对象的属性,当您将对象序列化或将其转换为 JSON 或数组时,它们将被忽略:

$model->toArray()

【讨论】:

  • 我试过这个,但我失去了模型的关系。有没有办法也保持关系?
  • @InoveCommerce 加载的关系数据仍然存在,但它将是多维数组而不是集合。
猜你喜欢
  • 2019-12-01
  • 1970-01-01
  • 2011-07-17
  • 2017-09-12
  • 2019-09-21
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多