同样,我在数据库中有 2 个表,账户和银行,它们之间是一对多关系。
'banks' => array(self::BELONGS_TO, 'Banks', 'banks_id'),
在帐户模型中。
我需要在帐户创建表单中使用
Chtml::dropDownList
,所以我对其进行编辑_form.php
:
<div class="row">
<?php echo $form->labelEx($model,'banks_id'); ?>
<?php echo CHtml::dropDownList($model, 'banks_id', CHtml::listData(Banks::getBanksList(), 'id', 'title','country')); ?>
<?php echo $form->error($model,'banks_id'); ?>
</div>
也在 Banks 模型中通过以下方式开发 `getBanksList:
public static function getBanksList()
{
$userLanguage = Yii::app()->user->getState('lang');
$result = array();
$banks = self::model()->findAll();
foreach ($banks as $bank){
array_push($result, array(
'id' => $bank->id,
'title' => ($userLanguage == $bank->default_lang)?$bank->default_name:$bank->en_name,
'country' => Yii::t('countries',$bank->country),
));
}
return $result;
}
但它引发了
Object of class Accounts could not be converted to string
错误,并且在跟踪中它发生在
public static function getIdByName($name)
{
return str_replace(array('[]', '][', '[', ']', ' '), array('', '_', '_', '', '_'), $name);
}
在Chtml.php文件中。问题出在哪里?我查了很多,但无法解决问题。
我明白我的问题出在哪里,我应该使用
$form
而不是 Chtml
。