ActiveDataProvider 显示值 yii2
ActiveDataProvider display value yii2
我只想知道是否可以独立于任何 gridview 显示 $dataprovider
的数据。
如果 $dataprovider
包含特定查询结果的值,它将作为数组存储在其中。
那么我怎样才能只调用 $dataprovider
中的一个值
例如我的 $dataprovider
包含所有 select * from user where status=10
的值
那么是否可以仅显示 $dataprovider->user>name
第一条记录。
谢谢
是的,您可以在 dataProvider 中找到 models
。这些是模型的集合,然后如果您迭代此集合,您可以使用单个模型数据,例如:
foreach( $dataProvider->models as $myModel){
echo myModel->field1;
echo myModel->filed2:
........ // and so on for all the data you need
}
可以看看这个Yii2框架doc for ref
您当然可以按照 scaisEdge 的建议访问 $dataProvider->models
并获得您需要的单个模型,但这不是很有效,因为它执行查询并检索 all 模型只会在以后被丢弃。
但是,您可以访问 dataProvider
的 query
对象,并通过它获得您需要的单个模型。
$newQuery = clone $dataProvider->query;
$model = $newQuery->limit(1)->one();
如果可以修改 dataProvider
(如果您不在其他任何地方使用它),则无需克隆查询。
更新:
$this->title = isset($dataProvider->models[0]->name) ? $dataProvider->models[0]->name : 'empty result';
我只想知道是否可以独立于任何 gridview 显示 $dataprovider
的数据。
如果 $dataprovider
包含特定查询结果的值,它将作为数组存储在其中。
那么我怎样才能只调用 $dataprovider
例如我的 $dataprovider
包含所有 select * from user where status=10
的值
那么是否可以仅显示 $dataprovider->user>name
第一条记录。
谢谢
是的,您可以在 dataProvider 中找到 models
。这些是模型的集合,然后如果您迭代此集合,您可以使用单个模型数据,例如:
foreach( $dataProvider->models as $myModel){
echo myModel->field1;
echo myModel->filed2:
........ // and so on for all the data you need
}
可以看看这个Yii2框架doc for ref
您当然可以按照 scaisEdge 的建议访问 $dataProvider->models
并获得您需要的单个模型,但这不是很有效,因为它执行查询并检索 all 模型只会在以后被丢弃。
但是,您可以访问 dataProvider
的 query
对象,并通过它获得您需要的单个模型。
$newQuery = clone $dataProvider->query;
$model = $newQuery->limit(1)->one();
如果可以修改 dataProvider
(如果您不在其他任何地方使用它),则无需克隆查询。
更新:
$this->title = isset($dataProvider->models[0]->name) ? $dataProvider->models[0]->name : 'empty result';