【发布时间】:2019-02-19 12:54:54
【问题描述】:
我正在使用->map() 函数,如this SO question 中所示,但现在我需要更新使用->firstOrFail() 而不是->get() 的范围。或者,如果您不能将 ->map() 与 ->firstOrFail() 一起使用,我如何在使用范围获取单个记录时即时编辑某些值?
【问题讨论】:
标签: php laravel laravel-5 eloquent
我正在使用->map() 函数,如this SO question 中所示,但现在我需要更新使用->firstOrFail() 而不是->get() 的范围。或者,如果您不能将 ->map() 与 ->firstOrFail() 一起使用,我如何在使用范围获取单个记录时即时编辑某些值?
【问题讨论】:
标签: php laravel laravel-5 eloquent
firstOrFail 将返回一个结果 - 而不是一个集合。您不能 map 处理单个项目 - 但如果您想在回调中对返回的结果做一些事情,您可以使用 tap 函数来包装它。
tap(User::where('id', 1337)->firstOrFail(), function ($user) {
//
});
【讨论】:
->trashed() 方法。知道为什么不?
tap() 闭包中分配一个值时,唯一返回的是我设置的属性,而模型的其余部分似乎已经在 JSON 中消失了。
tap 函数包装它,然后传递一个回调作为第二个参数。老实说,您最好将模型分配给一个变量并以这种方式使用它。
firstOrFail() 结果分配给一个变量并修改该变量的属性对我有用。感谢您的帮助