我想获取laravel eloquent模型的mutated / attached属性。我尝试了$model->getAttributes()
,但它返回原始属性数组,因为它们存储在数据库中。但是我想要获取已更改的属性,这些属性尚未保存到数据库中。
我试过$model->toArray()
,它返回raw和mutated / attached属性的数组。但是将'date'字段的值转换为字符串。
我使用mongodb作为数据库。 “日期”保存为mongodate,但toArray()
将其转换为字符串 - “date”:“2011-03-23 12:00:00”。
因此,当我尝试将从toArray()
获取的这些变异/追加属性保存到数据库时,我的日期会以字符串形式保存。
有没有其他方法来获取雄辩模型的变异/追加属性?
提前致谢。
答案 0 :(得分:2)
似乎你想重新使用Eloquent将模型序列化到数组的逻辑,但要跳过将日期序列化为字符串的那部分逻辑。
Eloquent通过检查其名称是否从模型的getDates()
方法返回来识别日期字段。覆盖该方法,使其返回空数组,日期不会被序列化。
您需要覆盖getDates()
而不是仅将$dates
属性设置为空数组的原因是getDates()
除$dates
中定义的内容外还返回created_at
updated_at
和 def viewList(id: Long) = AuthenticatedAction.async { implicit request =>
val userId = request.user.toLong;
db.run(todoLists.filter(listById(id, userId)).result.headOption).flatMap { list =>
list match {
case Some(_) => {
val json = toJson(list).as[JsObject]
// Fetch the items in this list and add them to the JSON response
db.run(todoItems.filter(_.listId === id).sortBy(_.text).result).map { items =>
Ok(json + ("items" -> toJson(items)))
}
}
case None => Future.successful(NotFound)
}
}
}
字段。