Laravel 使用where子句时不选择日期属性

Laravel 使用where子句时不选择日期属性,laravel,eloquent,Laravel,Eloquent,我面对着这个奇怪的问题,提出了雄辩的问题 我的模型看起来像这样: class MyModel extends Model { // ... $protected $dates = [ "some_date", ] } $myModel = MyModel::find(1); echo $myModel->toJson(); 使用类似这样的查询时: class MyModel extends Model { // ... $protecte

我面对着这个奇怪的问题,提出了雄辩的问题

我的模型看起来像这样:

class MyModel extends Model {
    // ...
    $protected $dates = [
    "some_date",
    ]
}
$myModel = MyModel::find(1);
echo $myModel->toJson();
使用类似这样的查询时:

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
数组,请确保该数组不包含此列

--或--

如果没有
$hidden
数组,请确保没有
$visible
数组,如果定义了
$visible
数组,请确保所需的列在其中


Laravel删除序列化为json时隐藏或不可见的列。

日期列的数据类型是否正确?模型上的
$hidden
$visible
数组有哪些列?我的模型中没有使用任何$visible或$hidden属性。看起来基本模型包含隐藏属性与我正在使用的匹配。现在它起作用了。您可以将您的评论作为答案发布,以便我对其进行验证;foreach($myModels作为$myModel){echo$myModel->toJson();}