需求是這樣的成肘,網(wǎng)站有一個(gè)成員版塊豺裆。這個(gè)版塊也用octobercms自帶的blog(博客)插件來(lái)做吃既,但是有個(gè)問(wèn)題考榨,成員版塊(members)包括兩個(gè)額外的成員坐標(biāo)的字段,于是我按照教學(xué)視頻鹦倚,擴(kuò)展了一個(gè)插件出來(lái)河质,并且已經(jīng)可以使用了。如下圖所示。
現(xiàn)在需要增加一個(gè)新鏈接的字段掀鹅,通過(guò)點(diǎn)擊這個(gè)鏈接散休,可以跳轉(zhuǎn)到對(duì)應(yīng)的成員的網(wǎng)站,如下圖乐尊。
需要以下幾個(gè)步驟:
- 在表jimmy_member_members中增加link字段
- 在后臺(tái)的表單中增加link字段的輸入框,并在添加和修改時(shí)更新數(shù)據(jù)表中對(duì)應(yīng)的數(shù)據(jù)
- 在前臺(tái)展示link字段
- 進(jìn)行測(cè)試
在表jimmy_member_members中增加link字段
updates文件夾下面已有的member表的migrate文件create_members_table.php扔嵌,增加一個(gè)用于加入字段的文件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');
});
}
}
估計(jì)Octobercms是根據(jù)version.yaml來(lái)執(zhí)行migrate限府,因此在version.yaml中增加版本信息
1.0.3:
- Add link column to members table
- add_links_to_members_table.php
執(zhí)行php artisan october:up,如下圖
查看members表痢缎,確定增加了一個(gè)link字段
在后臺(tái)的表單中增加link字段的輸入框胁勺,并在添加和修改時(shí)更新數(shù)據(jù)表中對(duì)應(yīng)的數(shù)據(jù)
修改Plugin.php文件,在boot方法中牺弄,增加link對(duì)應(yīng)的字表單段
/**
* 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' => '坐標(biāo)(左)' ,
'tab' => '聯(lián)盟成員',
'type' => 'text'
] ,
'member[top]' => [
'label' => '坐標(biāo)(上)' ,
'tab' => '聯(lián)盟成員',
'type' => 'text'
] ,
'member[link]' => [
'label' => '鏈接地址' ,
'tab' => '聯(lián)盟成員',
'type' => 'text'
] ,
]);
// MemberModel::getFromPost($model);
});
}
打開(kāi)后臺(tái)查看是否存在link字段姻几,并進(jìn)行添加及修改測(cè)試,如下圖
在前臺(tái)展示link字段
在“聯(lián)盟成員”頁(yè)面势告,顯示出相應(yīng)的數(shù)據(jù)
也就是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>
進(jìn)行測(cè)試
修改數(shù)據(jù)
確認(rèn)數(shù)據(jù)是否被正常顯示