Created By
当我从其他模型(管理员)关系中调用值时,为什么文本框会在下面消失。无论模型关系如何,如何让文本框显示?
有关该问题的更多信息,请参阅屏幕截图:
Created By
当我从其他模型(管理员)关系中调用值时,为什么文本框会在下面消失。无论模型关系如何,如何让文本框显示?
有关该问题的更多信息,请参阅屏幕截图:
Yii CGridView 不会为那些不属于所示表格的列创建 inputFiled(与关系一样)。如果要显示过滤器框(下拉菜单或任何您想要的,一种简单的方法是创建一个自定义 CDataColumn 并在您的网格中使用它:
array(
'name'=>'customer.createdBy.name',
'header' => 'Created by',
'class' => 'application.modules.mine.components.DataColumnCreatedBy',
),
现在定义您的扩展列以呈现过滤器:
class DataColumnCreatedBy extends CDataColumn
{
public function renderFilterCell()
{
echo "<td>";
echo CHtml::inputField('createdBy');
echo "</td>";
}
}
最好的解决方案是添加下拉列表,因为您必须在 createdBy 字段中有 ID,并且不希望用户使用数字 ID 进行搜索。下面的文章可以帮助你
如果您仍想添加文本框,则只需将文本框 html 分配给<input type="text" name="ModelName[createdBy]">
CDataColumn 的“过滤器”属性
'column_id'=> array(
'name' => 'createdBy',
'value' => '$data->relatedModel->createdBy',
'filter'=> '<input type="text" name="ModelName[createdBy]">'
),
希望这可以帮助