duanluo5096 2016-04-05 15:03
浏览 26

Silverstripe中模型管理员的简单表单

By default, Model Admin is used to manage a model/s, and if the model is skipped, the result is an error.

/* private static $managed_models = array(
    'OneModel'
); */

I want to display a simple form (Textfield for a password and an action button) first, then if the password is correct, it should go the to a the gridfield.

I tried to change the getCMSfields inside the model, but the field is visible only if i click on one of the records from the gridfield:

public function getCMSfields(){
    $fields = FieldList::create(TabSet::create('Root', $login = Tab::create('Authorise', 
        TextField::create('Password')
    )));
    return $fields;
}

Edit:

This secondary password it's the key to decrypt the data for that DataObject, is not a regular login, so it's an additional security method to keep safe some sensitive data.

  • 写回答

1条回答 默认 最新

  • douzhuican0041 2016-04-06 09:40
    关注

    I figured out, for those in similar situation. Instead of using ModelAdmin, we can use LeftAndMain. so the code will be:

    class Applications extends LeftAndMain {
        static $url_segment = 'applications';
        static $menu_title = 'Applications';
        static $url_rule = '$Action/$ID';
    
        public function init(){
            parent::init();
        }
    
        private static $allowed_actions = array(
            'login'
        );
    
        public function getEditForm($id = null, $fields = null) {
            $fields = new FieldList(
                TextField::create('Password', ' Password')
            );
            $actions = new FieldList(new FormAction('applicationPassword'));
            return new Form($this, "EditForm", $fields, $actions);
        }
    
        public function applicationPassword($data, Form $form){
            $pass = $data['Password'];
            $form->sessionMessage('Password submited for testing : '.$pass, 'success');
             return $this->redirect('login');
        }
    
         public function login(){
            return 'success';
        }
    }
    

    One more need would be, after validation, in the nest step to show the regular gridfield with the model records, but when i succed, i will return with an answer as well.

    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值