美文网首页
Octobercms增加数据库中表的字段

Octobercms增加数据库中表的字段

作者: 背着小猪去旅行 | 来源:发表于2018-10-07 17:21 被阅读0次

    需求是这样的,网站有一个成员版块。这个版块也用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

    <?php namespace Jimmy\Member\Updates;
    
    use Schema;
    use October\Rain\Database\Schema\Blueprint;
    use October\Rain\Database\Updates\Migration;
    
    class AddLinksToMembersTable extends Migration
    {
        public function up()
        {
            Schema::table('jimmy_member_members', function(Blueprint $table) {
                $table->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 %}
    <script>
        var pointLst = [
        {% for post in posts %}
        {
            'id':'p{{ post.id}}',
            'tit':'{{ post.title}}',
            'txt':"{{ post.content|replace({"\r\n":'<br />'}) }}",
            {% if post.member.left %}'left':{{ post.member.left}},{% endif %}
            {% if post.member.top %}'top':{{ post.member.top}},{% endif %}
            {% if post.member.link %}'link':'{{ post.member.link}}'{% endif %}
        },
        {% endfor %}
        ]
    </script>
    
    进行测试

    修改数据


    图片.png

    确认数据是否被正常显示


    link字段的内容被正常显示

    相关文章

      网友评论

          本文标题:Octobercms增加数据库中表的字段

          本文链接:https://www.haomeiwen.com/subject/eqmhaftx.html