【发布时间】:2017-05-17 21:16:42
【问题描述】:
我的 Eloquent 查询遇到了这个奇怪的问题。
我的模型看起来像这样:
class MyModel extends Model {
// ...
$protected $dates = [
"some_date",
]
}
当使用这样的查询时:
$myModel = MyModel::find(1);
echo $myModel->toJson();
我得到这个输出:
{
"id" : 1
"some_date" : "../../../"
}
但是当我使用这个查询时:
$myModel = MyModel::where('id', '=', 1)->get();
echo $myModel->toJson();
我得到这个奇怪的输出:
{
"id" : 1
}
where 子句没有选择日期属性!为什么会这样?
【问题讨论】:
-
您的日期列的数据类型是否正确?
-
模型上的
$hidden和$visible数组有哪些列? -
我没有在我的模型中使用任何 $visible 或 $hidden 属性。
-
看起来 BaseModel 包含与我正在使用的属性匹配的隐藏属性。现在它起作用了。您可以将您的评论作为答案发布,以便我对其进行验证。
-
试试这个:$myModels = MyModel::where('id', '=', 1)->get(); foreach($myModels as $myModel) { echo $myModel->toJson(); }