私はgridviewのモデルからデータを呼び出すつもりでした。私は作曲家経由で高度なグリッドビューをインストールし、\ yiister \ grid \ widgets \ ProgressColumnを使用しています。 prolem ProgressColumnウィジェットはint型の値としてyii2 gridview Closureクラスのオブジェクトをintに変換できませんでした
'value'=>function($model){
$model->paxtashart;
},
を取っていないが、それは私にエラーを与える:クラス閉鎖のオブジェクトが
をintに変換することができませんでした、私はそれを変換することができます任意のpossiblityがありますintまたはその他の代替手段?ここ
私はあなたに私の全体のコードを提示してみましょう:
$model->paxtashart
が、それはすべての属性のために私に1つの値を与えるjsut、それは
を支援されていないされています。私はこの方法を試してみました[
'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;
},
],
私のモデルは次のようになります。
<?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'」のように前に戻り値を追加するとどうなりますか? –
私はリターンを追加しましたが、それでもエラーが表示されます:クラスClosureのオブジェクトをintに変換できませんでした –
あらかじめ変数にクロージャを割り当ててみてください。 '$ paxtashart = function($ model){ のようにreturn $ model-> paxtashart; } '。次に、 'value =>(int)$ paxtashart()'のように呼び出します。ところで、 '$ model'とは何ですか?ここにコードを追加できますか? –