Octobercms增加数据库中表的字段

需求是这样的,网站有一个成员版块。这个版块也用octobercms自带的blog(博客)插件来做,但是有个问题,成员版块(members)包括两个额外的成员坐标的字段,于是我按照教学视频,扩展了一个插件出来,并且已经可以使用了。如下图所示。


联盟成员表单

现在需要增加一个新链接的字段,通过点击这个链接,可以跳转到对应的成员的网站,如下图。


点击进入官网,跳转到对应的网站

需要以下几个步骤:

  1. 在表jimmy_member_members中增加link字段
  2. 在后台的表单中增加link字段的输入框,并在添加和修改时更新数据表中对应的数据
  3. 在前台展示link字段
  4. 进行测试
在表jimmy_member_members中增加link字段

updates文件夹下面已有的member表的migrate文件create_members_table.php,增加一个用于加入字段的文件add_links_to_members_table.php

string('link',100)->nullable();
        });
    }

    public function down()
    {
        Schema::table('jimmy_member_members' , function(Blueprint $table){
            $table->drop_column('link');
        });
        
    }
}

估计Octobercms是根据version.yaml来执行migrate,因此在version.yaml中增加版本信息

1.0.3:
      - Add link column to members table
      - add_links_to_members_table.php

执行php artisan october:up,如下图


图片.png

查看members表,确定增加了一个link字段


jimmy_member_members表
在后台的表单中增加link字段的输入框,并在添加和修改时更新数据表中对应的数据

修改Plugin.php文件,在boot方法中,增加link对应的字表单段

/**
     * Boot method, called right before the request route.
     *
     * @return array
     */
    public function boot()
    {
        PostModel::extend(function($model){
            $model->hasOne['member'] = ['Jimmy\Member\Models\Member'];
        });

        PostsController::extendFormFields(function($form , $model , $context){

            if (!$model instanceof PostModel)
                return ;

            if (!$model->exists)
                return;

            MemberModel::getFromPost($model);
            
            $form->addSecondaryTabFields([

                'member[left]' => [
                    'label' => '坐标(左)' ,
                    'tab' => '联盟成员',
                    'type' => 'text'
                ] , 
                'member[top]' => [
                    'label' => '坐标(上)' ,
                    'tab' => '联盟成员',
                    'type' => 'text'
                ] , 
                'member[link]' => [
                    'label' => '链接地址' ,
                    'tab' => '联盟成员',
                    'type' => 'text'
                ] ,
            ]);

            // MemberModel::getFromPost($model);
        });
    }

打开后台查看是否存在link字段,并进行添加及修改测试,如下图


图片.png
在前台展示link字段

在“联盟成员”页面,显示出相应的数据


增加link字段数据显示

也就是themes/changjiang/pages/member.htm文件

{% set posts = blogPosts.posts %}

进行测试

修改数据


图片.png

确认数据是否被正常显示


link字段的内容被正常显示

你可能感兴趣的:(Octobercms增加数据库中表的字段)