【发布时间】:2018-04-10 09:21:06
【问题描述】:
我打算在 gridview 中调用模型中的数据。我通过 composer 安装了高级网格视图,我正在使用 \yiister\grid\widgets\ProgressColumn。但是prolem ProgressColumn 小部件没有占用
'value'=>function($model){
return $model->paxtashart;
},
作为int值,它给了我错误:类闭包的对象无法转换为int
我可以将其转换为 int 或任何其他替代方法吗?
这里让我向您展示我的整个代码:
[
'class' => \yiister\grid\widgets\ProgressColumn::className(),
'attribute' => 'paxta_given',
'size' => \yiister\grid\widgets\ProgressColumn::SIZE_LARGE,
'isAnimated' => true,
'value'=>function($model){
$model->paxtashart;
},
// 'maxValue'=> $fermercha->paxtashart,
// 'minValue'=> $fermercha->paxta_given,
'progressBarClass' => function ($model, $column) {
return $model->{$column->attribute} > 60
? \yiister\grid\widgets\ProgressColumn::STYLE_SUCCESS
: \yiister\grid\widgets\ProgressColumn::STYLE_WARNING;
},
],
我试过这样: $model->paxtashat 但它只是给我所有属性的 1 值,它没有帮助 这是我的模型的样子:
<?php
namespace app\models;
use Yii;
/**
* This is the model class for table "fermer".
*
* @property integer $id
* @property string $FIO
* @property integer $tuman_id
* @property string $Massiv
* @property integer $ferhojalik
* @property integer $maydoni
* @property integer $paxtamay
* @property integer $paxtashart
* @property integer $gallamay
* @property integer $gallashart
* @property integer $bog
* @property integer $uzum
* @property integer $poliz
* @property integer $sabzavot
* @property integer $chorva
*/
class Fermer extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'fermer';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['tuman_id', 'ferhojalik', 'maydoni', 'paxtamay', 'paxtashart', 'gallamay', 'gallashart', 'paxta_given', 'poliz', 'sabzavot', 'chorva','paxta_done'], 'integer'],
[['FIO', 'Massiv'], 'string', 'max' => 255],
[['image'], 'file', 'extensions' => ['png','jpg','jpeg']],
];
}
public function upload()
{
if ($this->validate() and $this->image->baseName) {
$this->image->saveAs(Yii::$app->basePath.'/web/uploads/' . $this->image->baseName . '.' . $this->image->extension);
return true;
} else {
return false;
}
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'FIO' => 'ФИО',
'tuman_id' => 'Туман номи',
'Massiv' => 'Массив номи',
'ferhojalik' => 'Фермер хўжалиги номи',
'maydoni' => 'Майдони',
'paxtamay' => 'Пахта майдони',
'paxtashart' => 'Пахта майдони шартнома режаси (тонна)',
'gallamay' => 'Ғалла майдони',
'gallashart' => 'Ғалла майдони шартнома режаси (тонна)',
'paxta_given' => 'Пахта шартнома бўйича топширилган тонна',
'image' => 'Расм',
'poliz' => 'Полизчилик',
'sabzavot' => 'Сабзавотчилик',
'chorva' => 'Чорвачилик',
];
}
// return $this->hasone(Extraagri::className(), ['id' => 'po_item_no']);
public function getDone()
{
return $this->hasone(done::classname(),['id'=>'paxta_done']);
}
/* public function getPoitem()
{
return $this->hasMany(Poitem::className(), ['id' => 'po_item_no']);
}*/
/* public function getExtraagri()
{
return $this->hasMany(Extraagri::className(), ['id' => 'id']);
}
*/
}
【问题讨论】:
-
如果你在前面加上
return $model->paxtashart这样的return呢? -
我添加了 return 但仍然给我这个错误:类 Closure 的对象无法转换为 int
-
尝试提前将闭包分配给一个变量。喜欢
$paxtashart = function($model){ return $model->paxtashart; }。然后像value=> (int) $paxtashart()一样调用它。顺便说一句,$model是什么?你能在这里添加更多代码吗! -
这是我的模特兄弟