ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
控制器没有添加对应的组件,因为比较简单,而且在路由组件中也有对应的功能,所以只是实习了模块化添加. 下面将添加模型组件,模型组件相当于MVC中的M,实习数据处理功能,这部分将使用laravel框架中的"illuminate/database"组件来完成 composer.json文件 ~~~ { "require": { "illuminate/routing": "*", "illuminate/events": "*", "illuminate/database": "*" }, "autoload": { "psr-4": { "App\\": "app/" } } } ~~~ "illuminate/database"组件主要用于操作数据库,它提供了两种操作数据库的方式,一种是查询构造器方式,另一种是Eloquent ORM方式,这里使用Eloquent ORM方式,通过该方式操作数据库非常简单, 通过Eloquent ORM方式操作数据库需要完成下面五个步骤,分别是创建数据库,添加数据库配置信息,启动Eloquent ORM模块,创建model类和通过model类操作数据库 我们来创建一个表名字叫"students",添加3个字段,分别是'id','name','age' laravel项目的目录结构,在项目目录下创建config文件夹,该文件夹用于存放其中整个应用程序的配置文件,在该文件夹下创建"database.php"文件,用于存储对数据库的配置信息.其中,配置文件都是以数组形式提供配置信息的 数据库配置内容如下 config/database.php ~~~ <?php return [ 'driver' => 'mysql', 'host' => '127.0.0.1', 'database' => 'app', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', 'collation' => 'utf8_general_ci', 'prefix' => '' ]; ~~~ 在完成配置数据库的主机地址,数据库名称用户名和密码等信息.需要启动ORM模块,这部分工作是访问入口文件实现的 具体内容如下: public/index.php ~~~ <?php use Illuminate\Database\Capsule\Manager; //调用自动加载文件,添加自动加载文件函数 require __DIR__.'/../vendor/autoload.php'; //实例化服务容器,注册事件,路由服务提供者 $app = new Illuminate\Container\Container; with(new Illuminate\Events\EventServiceProvider($app))->register(); with(new Illuminate\Routing\RoutingServiceProvider($app))->register(); //启动ORM模块并进行相关配置 $manager = new Manager(); $manager->addConnection(require '../config/database.php'); $manager->bootEloquent(); //加载路由 require __DIR__.'/../app/Http/routes.php'; //实例化请求分发处理请求 $request = Illuminate\Http\Request::createFromGlobals(); $response = $app['router']->dispatch($request); //返回请求响应 $response->send(); ~~~ 启动ORM模块需要用到数据库的的管理类,即`Illuminate\Database\Capsule\Manager`类,于是添加了对应的命名空间并进行初始化,然后通过addConnection()函数完成数据库的相关配置并通过bootEloquent()函数完成数据库ORM模块的启动.在启动完成后,就可以操作数据库了.通过ORM方式操作数据库需要两个步骤来实现,一是创建模型类,二是通过模型类的方法操作数据库 laravel框架会将模型类直接放在app目录下,这里会在app目录下创建一个Models文件夹,用于统一管理,使得程序看起来更加模块化,我们在Models文件夹下创建"Students.php", app\Models\Student.php ~~~ <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Student extends Model { public $timstamps = false; } ~~~ 控制器 ~~~ <?php namespace App\Http\Controllers; use App\Models\Student; class WeclomeController { public function index() { $student = Student::first(); $data = $student->getAttributes(); return $data; } } ~~~