RadioGroup 单选组

RadioGroup 单选组 支持所有Field 的属性设置,可以在 string,int,float 类型的 Model属性字段上注解。

除此之外,RadioGroup 单选组 还有几个自己的设置属性。

public array $options = []

用于设置每个选项的数组

options:[
            ['value'=>1,'text'=>'汽车'],
            ['value'=>2,'text'=>'电子'],
            ['value'=>3,'text'=>'图书'],
            ['value'=>4,'text'=>'运动'],
        ]

即 每项都需要有  value  和 对应 的 text 设置,可以多项。

 

public string|array $optionFunc = '';

用于设置选项的函数名,或者数组形式的函数名

    #[RadioGroup(
        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' => '运动'],
        ];
    }

数组形式

    #[RadioGroup(
        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 语句来设置我们的选项值。

    #[RadioGroup(
        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\RadioGroup;


#注意 这里需要使用表单注解
#[Form(title: '用户表单', table: '@pf_user', template: 'user.form.tpl')]
class UserModel
{

    #[RadioGroup(
        label: '选择感兴趣的类目',
        options: [
            ['value' => 1, 'text' => '汽车'],
            ['value' => 2, 'text' => '电子'],
            ['value' => 3, 'text' => '图书'],
            ['value' => 4, 'text' => '运动'],
        ],
    )]
    public int $like = 0;

    #[RadioGroup(
        label: '所属栏目',
        optionSql: 'select id as value,name as text from @pf_column where allow=1'
    )]
    public int $column = 0;


}

模板代码:

<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <title>{$form->title}</title>
    <link type="text/css" rel="stylesheet" href="/yeeui/css/yeeui.css"/>
    <link type="text/css" rel="stylesheet" href="/icofont/icofont.css"/>
    <script src="/yeeui/third/jquery-3.3.1.min.js"></script>
    <script src="/yeeui/yee.js"></script>
</head>
<body>
<div style="margin: 20px">
    <form method="post" yee-module="ajax validate">
        <div class="yee-panel">
            <div class="panel-caption">
                {if $form->getType()=='add'}添加{elseif $form->getType()=='edit'}编辑{/if}{$form->title}
            </div>
            <div class="panel-content">
                {foreach from=$form->getViewFields() item=field}
                    {field_row field=$field}
                {/foreach}
            </div>
            <div class="yee-submit">
                <label class="submit-label"></label>
                <div class="submit-cell">
                    {*输出隐藏域*}
                    {$form->fetchHideBox()|raw}
                    <input type="submit" class="form-btn red" value="提交">
                </div>
            </div>
        </div>
    </form>
</div>
</html>

控制器代码:

namespace app\home\controller;


use app\home\model\UserModel;
use beacon\core\Controller;
use beacon\core\Form;
use beacon\core\Logger;
use beacon\core\Method;

class User extends Controller
{
    #[Method(act: 'index', method: Method::GET)]
    public function index()
    {
        $form = Form::create(UserModel::class, 'add');
        $this->displayForm($form);
    }

    #[Method(act: 'index', method: Method::POST)]
    public function add()
    {
        $user = new UserModel();
        $form = Form::create($user, 'add');
        $input = $this->completeForm($form);
        Logger::log($input); #input 可以用用于插入或者更新数据库。
        Logger::log($user);
        //这里需要有返回值 否则 ajax 提交会没有任何内容返回
        $this->success('ok');
    }
}

 

最终呈现效果:

Copyright © 2021 海南的叶子 All Rights Reserved 琼ICP备2021000725号

琼公网安备 46900702000037号