我有一个包含以下各列的mysql表
名称|大黄酮|邮件| created_at
“日期”字段是日期类型
“ created_at”字段是时间戳类型
在我的控制器中,我有一种方法可以按日期对结果进行分组
$users = Post :: orderBy ('dateone') -> get () -> groupBy (function ($ item) {
return $ item-> created_at-> format ('Y-m-d');
它可以工作,但是,当我替换
返回$ item-> created_at ->格式('Y-m-d');
作者
返回$ item-> 日期->格式('Y-m-d');
我遇到以下错误:
在字符串上调用成员函数format()
是否有通过Carbon或其他解决方案来解决我的问题?
感谢您的帮助。
答案 0 :(得分:0)
是,默认情况下, created_at 和 updated_at 位于Carbon Instance中。您可以将dateone解析为carbon实例,将它用作created_at。
$convertedDateOne = null;
if(!empty($item->dateone)){
$convertedDateOne = Carbon::parse($item)->format('Y-m-d');
}
如果您希望每次将dateone都作为Carbon的实例,则可以在模型中cast in the datetime format。
假设模型名称为Item.php
class Item extends Model{
protected $dates = ['dateone'];
}