Select 下拉框
Select 下拉框和其他控件一样同样可以使用Field 的属性这种,可以支持 string,int,float 的Model属性字段注解。
除此之外,RadioGroup 单选组 还有几个自己的设置属性。
public string|array $header = '';
设置下来框表头,可以设置字符串也可以设置数组
header:'请选择'
或者
header:['value'=>0,'text'=>'请选择']
public array $options = []
用于设置每个选项的数组
options:[
['value'=>1,'text'=>'汽车'],
['value'=>2,'text'=>'电子'],
['value'=>3,'text'=>'图书'],
['value'=>4,'text'=>'运动'],
]
即 每项都需要有 value 和 对应 的 text 设置,可以多项。
public string|array $optionFunc = '';
用于设置选项的函数名,或者数组形式的函数名
#[Select(
label: '所属栏目',
optionFunc: '\app\home\model\UserModel::columnOptions'
)]
public int $column = 0;
public static function columnOptions(): array
{
return [
['value' => 1, 'text' => '汽车'],
['value' => 2, 'text' => '电子'],
['value' => 3, 'text' => '图书'],
['value' => 4, 'text' => '运动'],
];
}
数组形式
#[Select(
label: '所属栏目',
optionFunc: [self::class,'columnOptions']
)]
public int $column = 0;
public static function columnOptions(): array
{
return [
['value' => 1, 'text' => '汽车'],
['value' => 2, 'text' => '电子'],
['value' => 3, 'text' => '图书'],
['value' => 4, 'text' => '运动'],
];
}
public string $optionSql = '';
我们也可以使用Sql 语句来设置我们的选项值。
如
#[Select(
label: '所属栏目',
optionSql: 'select id as value,name as text from @pf_column where allow=1'
)]
public int $column = 0;
完整示例:
UserModel
namespace app\home\model;
use beacon\core\Form;
use beacon\widget\Select;
#注意 这里需要使用表单注解
#[Form(title: '用户表单', table: '@pf_user', template: 'user.form.tpl')]
class UserModel
{
#[Select(
label: '选择感兴趣的类目',
header: '请选择兴趣',
options: [
['value' => 1, 'text' => '汽车'],
['value' => 2, 'text' => '电子'],
['value' => 3, 'text' => '图书'],
['value' => 4, 'text' => '运动'],
],
)]
public int $like = 0;
#[Select(
label: '所属栏目',
header: ['value' => 0, 'text' => '请选择栏目'],
optionSql: 'select id as value,name as text from @pf_column where allow=1'
)]
public int $column = 0;
}
模板与控制器与上页一样[RadioGroup]
最终呈现的效果如下: