Eloquent ORM 能否设置只读字段?该字段允许create禁止update

Eloquent ORM 有没有设置只读字段的功能?该字段允许create禁止update或update时自动过滤掉该字段。如果使用模型的 fillable 或 guarded 属性的话如何在 create 的时候强制指定字段的写入?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

可以试一试在模型中自己重写update方法,保存自己需要的字段,或者unset掉自己不需要的字段,判断的字段数组可以放到一个类属性中(批量更新这样操作没有效果)

file

2年前 评论
讨论数量: 7

Model 设置 protected static $guardableColumns = [];

2年前 评论
RainLee1990 (楼主) 2年前
GeorgeKing (作者) 2年前
RainLee1990 (楼主) 2年前

guardableColumns是保护列,意味着不修改不新增,但是需要fill才会触发,好像直接create不会触发,你可以试一下,如果不行可以使用观察者事件,save的时候去除保护字段

2年前 评论

可以使用模型事件 Observer , 在create和update事件中对你需要的字段进行操作. 具体使用方法可以参考我的博文 Laravel 中模型事件 Observer 的使用

2年前 评论

可以试一试在模型中自己重写update方法,保存自己需要的字段,或者unset掉自己不需要的字段,判断的字段数组可以放到一个类属性中(批量更新这样操作没有效果)

file

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!