yii2 listdata转换自yii1.x

时间:2015-04-16 10:07:51

标签: yii yii2 html.dropdownlistfor

如何将以下内容转换为yii2

$dependency = new CDbCacheDependency('SELECT count(*) FROM job_title');
$jobTitle  = JobTitle ::model()->cache(CACHE_TIMEOUT,$dependency)->findAll($array);
$jobTitleList = CHtml::listData($jobTitle, 'job_title_id','desc');
return $jobTitleList;

我有以下代码无效。

use yii\db\ActiveRecord;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;

$items = array();
foreach (Jobsprocess::find()->where($array)->all() as $value) {
    $items[$value->process_id] = $value->jobsprocess;
}
return $items;

2 个答案:

答案 0 :(得分:9)

如果我理解你的问题,你需要Yii 2格式的以下代码。

  

Yii 1:

$dependency = new CDbCacheDependency('SELECT count(*) FROM job_title');
$jobTitle  = JobTitle ::model()->cache(CACHE_TIMEOUT,$dependency)->findAll($array);
$jobTitleList = CHtml::listData($jobTitle, 'job_title_id','desc');
return $jobTitleList;
  

Yii 2:

use yii\helpers\ArrayHelper;
use app\models\JobTitle;

$jobTitleList = ArrayHelper::map(JobTitle::find()->where($array)->all(), 'job_title_id','desc');
return $jobTitleList;

但我不知道你在Jobsprocess代码中使用Yii 2模型做了什么。因为,在Yii 1格式中,您尚未使用该模型。

答案 1 :(得分:3)

Yii 2中CHtml::listData的替换为ArrayHelper::map()示例:

$jobTitleList = ArrayHelper::map($jobTitle, 'job_title_id', 'desc');

official docs中阅读更多内容。