Created By
他のモデル (管理者) リレーションから値を呼び出すと、テキスト ボックスが下に消えるのはなぜですか? モデルの関係に関係なく、テキストボックスを表示するにはどうすればよいですか?
問題の詳細については、スクリーンショットを参照してください。
Created By
他のモデル (管理者) リレーションから値を呼び出すと、テキスト ボックスが下に消えるのはなぜですか? モデルの関係に関係なく、テキストボックスを表示するにはどうすればよいですか?
問題の詳細については、スクリーンショットを参照してください。
最善の解決策は、createdBy フィールドに ID が必要であり、ユーザーに数値 ID を使用して検索させたくないため、ドロップダウン リストを追加することです。そんな時に役立つのが次の記事
それでもテキストボックスを追加したい場合は、テキストボックス html<input type="text" name="ModelName[createdBy]">
を CDataColumn の「filter」プロパティに割り当てるだけです。
'column_id'=> array(
'name' => 'createdBy',
'value' => '$data->relatedModel->createdBy',
'filter'=> '<input type="text" name="ModelName[createdBy]">'
)、
お役に立てれば
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>";
}
}