我有一个 mySQL 数据库,其中有一个表videos和两列,开始时间 and end_time,其格式为2017-01-24 15:38:11.
我有一个活动记录模型Videos延伸\yii\db\ActiveRecord我想添加一些数据库中没有的附加属性。
我正在尝试将时间戳拆分为单独的日期和时间,然后可以将其显示为 gridview 小部件中的列。我通过直接在视图中将列值设置为具有类似以下内容的函数成功地做到了这一点...
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' =>
[
[
'class' => '\kartik\grid\DataColumn',
'attribute' => 'videodate',
'value' => function($model)
{
$datetime = new DateTime('start_time');
$date = $datetime->format('Y-m-d');
return $date;
},
],
],
'responsive'=>true,
'hover'=>true
]); ?>
然而,这并不理想,因为我希望能够利用日期和时间作为我的 videoSearch 模型中的属性来进行过滤和排序。
根据我的研究,我已将属性添加到Video我的规则()和attributeLabel()函数中的模型但是我不确定如何设置该值。我最初的想法是像亲戚一样做...
public function getVideodate(){
$datetime = new DateTime('start_time');
$date = $datetime->format('Y-m-d');
return $date;
}
然而这并没有产生预期的结果。我想如果我可以在模型中定义和设置它,那么将其添加到搜索模型应该很简单,因为我的临时解决方案(在视图中)使这变得非常复杂。
我打算在他改进的 gridview 小部件上使用 kartik 的日期范围和时间过滤器。在此先感谢您,请让我知道我还可以包括哪些内容。
Nick