按照旧版本录入系统重构,技术选型Laravel + Mysql + Vuejs + webpack (mix)
更新至Laravel 5.5框架
https://input.cbdb.fas.harvard.edu/basicinformation
数据库配置文件在.env中
migration 是laravel提供的一个数据库迁移功能,可以方便的在新环境上迁移数据。
php artisan make:migration creat_tasks_table --create=tasks
参考文档migrations
laravel自带的邮箱服务对国内支持不太好,本项目倾向使用sendcloud服务
执行如下命令,使用laravel自带的用户验证功能
php artisan make:auth
参考文档authentication
网站的各种提示使用flash
表单验证会是本项目的重点之一,保证用户提交的信息准确无误
参考文档validation
Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库进行交互。每个数据库表都有一个对应的「模型」可用来跟数据表进行交互。你可以通过模型查询数据表内的数据,以及将记录添加到数据表中。
本项目的数据库操作都会采取这种方式。
参考文档eloquent
使用如下命令创建控制器
php artisan make:controller BiogBasicInformationController --resource
使用下面命令查看路由
php artisan route:list
创建验证Request
php artisan make:request BiogBasicInformationRequest
参考文档controllers
修改resource/assets/js/bootstrape和resource/assets/css/app.scss 执行npm run dev
vue模板放在resource\assets\js\components
在bootstrap.js
注册
npm run dev
BIOG_MAIN DYNASTIES CHORONYM_CODES
http://d.laravel-china.org/docs/5.4/passport#frontend-quickstart
migrate 设置主键 寻找解决方法
- 把BIOG_MAIN的c_name添加binary属性,用于区分大小写查询
- 官名包含
POSTED_TO_OFFICE_DATA
POSTED_TO_ADDR_DATA
- 添加提示,保存错误提示,尤其是操作数据库的提示
参考文档controllers
创建API资源控制器,如人物主要信息
php artisan make:controller Api/BiogMainController --resource
在api.php里添加路由
Route::resource('biog', 'Api\BiogMainController', ['name' => [
'show' => 'biog.show',
'create' => 'biog.create',
'edit' => 'biog.edit',
'update' => 'biog.update',
'index' => 'biog.index',
]]);
包含了对改资源的操作
创建API RESOURCE格式化函数
php artisan make:resource BiogMain
使用如下: 修改BiogMain的toArray方法
public function toArray($request)
{
return [
'c_name_chn' => $this->c_name_chn,
'source_count' => $this->source_count,
];
}
在controller中
public function show($id)
{
$data = $this->biogMainRepository->byPersonId($id);
return new BiogMain($data);
}
其他的方法可完全参照对应Controller的方法
批量查询使用API Resource Collection功能
php artisan make:resource BiogCollection
Api相关代码在
app/Http/Controllers/Api
和app/Http/Resources
和routes/api.php
当中
### 修改通知
在此文件中:
cbdb-online-main-server/resources/views/layouts/dashboard.blade.php
修改 <div class="callout callout-warning">
和 </div>
中间的内容。如需要分段,则用 <p>
标签。
实例参见 old-server 分支:
建立 cbdb-online-main-server/resources/views/errors/503.blade.php
503.blade.php 的內容形如
<h3>
We will update our server from 10:00am to 12:00pm on 11/16. The inputting service will be closed for 2 hours. We apologize for this inconvenience. CBDB Team 2018.11.14
</h3>
</html>
如果相关目录或者文件缺失,请直接新建
编辑 503.blade.php 后,运行 php artisan down 即可开启维护模式
php artisan down
php artisan up
记得不要在前面加 sudo。据群超:docker 下没有 sudo 的权限,如果使用 laradock 的环境,sudo 命令将不会成功
STOP:
cd /.../cbdb-online-main-server
php artisan down
systemctl stop docker
init 0
START:
cd /.../laradock
docker-compose up -d nginx mysql
cd /.../cbdb-online-main-server
php artisan up
导入的时候,务必打开 .sql 文件,检查文件头是否有 SET NAMES utf8mb4。
如果没有,请手动添加。
-
合并分支时,解决 conflict 问题之后,在 Pull requests 界面中使用 Squash and merge 按钮进行分支合并。
-
合并之后,在服务器环境中的 /.../cbdb-online-main-server 下运行 git pull 即可。建议 pull 之后重启一次。
先备份本地 .env 文件,以及 vendor、logs 文件夹,将前述三个文件/文件夹复制至从 github 下载的 CBDB 在线录入系统最新源代码解压后的根目录即可。
https://github.com/cbdb-project/cbdb-online-main-server/tree/develop/app/Http/Controllers/Api
Contributed by Chengxi YAN
Contributed by Yawei SUN
npm run dev如果出現錯誤訊息:error code ELIFECYCLE
執行命令:
rm -rf node_modules
rm package-lock.json yarn.lock
npm cache clear --force
npm install
詳細說明:
rm -rf node_modules 是將node_modules資料夾整個刪除
rm package-lock.json yarn.lock 是將最低需求的版本控制資訊移除,直接取得最新版本,這可能會在較新的主機遇到。
npm cache clear –force 清除快取
npm install 重新安裝
之後再執行 npm run dev 就可以通過了。
https://github.com/nodesource/distributions
curl -fsSL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
The proper version of nodejs is 12, while the default version of nodejs(apt) in ubuntu 20 is 10.
If you still get an error, please check whether you have python 2.7 for the 'gpy' package.
Please make sure that your web server user is the owner of this file
sudo chown caddy laravel.log