软件名称 | 版本 |
---|---|
操作系统 | windows10 |
laravel | 8.6.12 |
Php | 7.4.33nts |
Composer | 2.4.4 |
达梦数据库 | V8 |
到数据库服务器的%DM_HOME%\drivers\php_pdo目录,将二个扩展文件复制到php文件夹里面的ext文件夹里面
extension=pdo74nts_dm.dll
extension=php74nts_dm.dll
配置php.ini,截图如下:
到数据库服务器的%DM_HOME%\drivers\dpi,找到以下dll文件
dmdpi.dll
dmclientlex.dll
dmutl.dll
dmstrt.dll
dmshm.dll
dmos.dll
dmmsg.dll
dmmout.dll
dmmem.dll
dmelog.dll
dmdta.dll
dmdcr.dll
dmcyt.dll
dmcvt.dll
dmcpr.dll
dmcomm.dll
dmcfg.dll
dmcalc.dll
放到php根目录
参考windows 10配置PATH环境变量
截图如下:
https://getcomposer.org/download/
截图如下:
(如果是直接引用项目,则2.2步骤可全部忽略,直接启动程序即可)
1、更新源
composer config -g repo.packagist composer https://packagist.org
2、cd到项目存放的目录,再执行以下命令创建项目
composer create-project --prefer-dist laravel/laravel learnlaravel8
截图如下:
3、Cd 到创建的learnlaravel8项目目录,执行以下命令安装依赖包
composer require jackfinal/laravel-dm8
截图如下:
4、Cd 到创建的learnlaravel8项目目录,执行以下命令,创建dm.php配置文件
php artisan vendor:publish --tag=dm
截图如下:
(以下文件均在learnlarave18项目目录)
在项目根目录,修改.env
修改DB_CONNECTION的值
DB_CONNECTION=dm
DB_HOST=x.x.x.x
DB_PORT=5236
DB_DATABASE=DAMENG
DB_USERNAME=SYSDBA
DB_PASSWORD=SYSDBA
截图如下:
在项目的根目录app\Models生成model文件
Cd到项目根目录,执行以下命令,或者直接在项目中新建文件
php artisan make:model UserModel
修改app\Models\UserModel.php文件中的相关信息。制定数据库连接和表名。
代码如下:
use HasFactory;
protected $connection = 'dm';
protected $table='users';//真实表名
protected $fillable=['NAME','AGE'];//可以操作的字段
public $timestamps=false;//不需要laravel自动管理创建时间与修改时间
在项目根目录App\Http\Controllers生成控制器文件,也可直接创建php文件
php artisan make:controller UserController
并修改里面的信息,代码如下:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\UserModel;
use DB;
class UserController extends Controller
{
//查询列表
public function lst()
{
$data=UserModel::all();
return view('orm.lst', ['data' => $data]);
}
//增加用户信息
public function add(Request $request)
{
if($request->isMethod('get')){
//显示视图
return view('orm.add');
}elseif($request->isMethod('post')){
$usermodel = new UserModel;
$usermodel->name = $request->name;
$usermodel->age = $request->age;
if($usermodel->save()){
//插入成功
return redirect('/lst');
}else{
//插入失败
return redirect('/orm/add');
}
}
}
//修改用户信息
public function edt(Request $request,$id)
{
if($request->isMethod('get')){
//显示视图
$info=UserModel::find($id);
return view('orm.edt',['info'=>$info]);
}elseif($request->isMethod('post')){
//方法一
$info=UserModel::find($id);
$info->name=$request->input('name');
$info->age=$request->input('age');
if($info->save()){
//插入成功
return redirect('/lst');
}else{
//插入失败
return redirect('/orm/edt'.$id);
}
}
}
//删除用户信息
public function del($id)
{
$users=UserModel::find($id);
$users->delete();
return redirect('/lst');
}
}
在项目根目录routes\web.php,添加如下代码,截图如下:
代码如下:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
use App\Http\Controllers\Tcontrollers;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::get('/lst',[UserController::class, 'lst']);
Route::match(['get','post'],'/orm/add/',[UserController::class, 'add']);
Route::match(['get','post'],'/orm/del/{name}',[UserController::class, 'del']);
Route::match(['get','post'],'/orm/edt/{name}',[UserController::class, 'edt']);//->where('id','\d+');// \d+表示 id必须是数字
到项目根目录resources\views,创建orm目录,在orm目录下面创建三个增删改查的视图
文件名称lst.blade.php,代码如下:
<body>
<h1>用户列表</h1>
<a href="/orm/add/">添加</a>
<hr>
@foreach ($data as $v)
id:{{$v->id}} name:{{$v->name}} age:{{$v->age}}
<a href="/orm/edt/{{$v->id}}">编辑</a>
<a href="/orm/del/{{$v->id}}">删除</a>
<hr>
@endforeach
</body>
编辑数据视图,文件名edt.blade.php,代码如下:
<body>
<h1>修改用户</h1>
<form action="/orm/edt/{{$info->id}}" method="post">
{{csrf_field()}}
用户名:<input type="text" name="name" value="{{$info->name}}">
年 龄:<input type="text" name="age" value="{{$info->age}}">
<input type="submit" name="btn" value="提交">
</form>
</body>
文件名add.blade.php,新增视图,代码如下:
<body>
<h1>添加用户</h1>
<form action="/orm/add" method="post">
{{csrf_field()}}
用户名:<input type="text" name="name">
年 龄:<input type="text" name="age">
<input type="submit" name="btn" value="提交">
</form>
</body>
创建数据库参考以下命令,不敏感,字符集为utf-8
./dminit path=../data page_size=32 extent_size=32 CASE_SENSITIVE=0 CHARSET=1
创建表和插入数据
CREATE TABLE "SYSDBA"."users"
(
"id" INT IDENTITY(1, 1) NOT NULL,
"name" VARCHAR2(50),
"age" INT,
NOT CLUSTER PRIMARY KEY("id")) ;
INSERT INTO "SYSDBA"."USERS"("NAME","AGE") VALUES('zhangsan',29);
INSERT INTO "SYSDBA"."USERS"("NAME","AGE") VALUES('王五_1',411);
INSERT INTO "SYSDBA"."USERS"("NAME","AGE") VALUES('苗苗1',551);
INSERT INTO "SYSDBA"."USERS"("NAME","AGE") VALUES('李风',30);
INSERT INTO "SYSDBA"."USERS"("NAME","AGE") VALUES('笑笑',122);
COMMIT;
cd到项目根目录,启动项目
php artisan serve
截图如下:
http://127.0.0.1:8000/lst
截图如下:
启动服务或者生成数据库配置文件时,出现以下错误
替换项目根目录的composer.json,修改config/app.php,重新执行命令。
解决办法如下:
composer.json中的require项增加以下代码:
"jackfinal/laravel-dm8": "^1.0",
composer install遇到如下问题
文章
阅读量
获赞