在 Slim 中使用 Eloquent

你可以使用 Eloquent 这种数据库 ORM 将你的 Slim 应用程序连接到数据库。

为你的应用程序添加 Eloquent

composer require illuminate/database "~5.1"

Figure 1: Add Eloquent to your application.

配置 Eloquent

在 Slim 的 setting 数组中添加数据库设置项。

return [

"settings" => [

// Slim Settings

"determineRouteBeforeAppMiddleware" => false,

"displayErrorDetails" => true,

"db" => [

"driver" => "mysql",

"host" => "localhost",

"database" => "database",

"username" => "user",

"password" => "password",

"charset" => "utf8",

"collation" => "utf8_unicode_ci",

"prefix" => "",

]

],

];

Figure 2: Settings array.

在 dependencies.php 中,或者其他任意位置添加你的 Service Factories:

// Service factory for the ORM

$container["db"] = function ($container) {

$capsule = new IlluminateDatabaseCapsuleManager;

$capsule->addConnection($container["settings"]["db"]);

$capsule->setAsGlobal();

$capsule->bootEloquent();

return $capsule;

};

Figure 3: Configure Eloquent.

传递数据表实例到控制器

$container[AppWidgetController::class] = function ($c) {

$view = $c->get("view");

$logger = $c->get("logger")

$table = $c->get("db")->table("table_name");

return new AppWidgetController($view, $logger, $table);

};

Figure 4: Pass table object into a controller.

从控制器中查询数据表

namespace App;

use SlimViewsTwig;

use PsrLogLoggerInterface;

use IlluminateDatabaseQueryBuilder;

use PsrHttpMessageServerRequestInterface as Request;

use PsrHttpMessageResponseInterface as Response;

class WidgetController

{

private $view;

private $logger;

protected $table;

public function __construct(

Twig $view,

LoggerInterface $logger,

Builder $table

) {

$this->view = $view;

$this->logger = $logger;

$this->table = $table;

}

public function __invoke(Request $request, Response $response, $args)

{

$widgets = $this->table->get();

$this->view->render($response, "app/index.twig", [

"widgets" => $widgets

]);

return $response;

}

}

Figure 5: Sample controller querying the table.

使用 where 查询数据表

...

$records = $this->table->where("name", "like", "%foo%")->get();

...

Figure 6: Query searching for names matching foo.

通过 id 查询数据表

...

$record = $this->table->find(1);

...

Figure 7: Selecting a row based on id.

了解更多

slim mysql_在 Slim 中使用 Eloquent相关推荐

  1. slim php 优点,Slim容器分析

    Slim容器分析 5年前,我还没什么编程经验,第一次接触java的spring框架,了解容器容器的概念,立刻被它巧妙的设计所惊呆,没错,就是惊呆...没想到程序居然可以这么写!! 不是从上至下的命令式 ...

  2. php slim框架 教程,Slim —— PHP web开发微框架

    Slim是一款基于PHP的web开发微框架,帮助 PHP 开发者快速编写简单强大的web应用和API.Slim的接口简单而符合直觉,文档也很详细. 直接看一段代码吧: $app->get('/' ...

  3. php 查看 实例 的方法,php – 从Laravel 5.1中的通用数据库查询中获取Eloquent模型的实例...

    我有不同关系的模型.假设我的Entry模型属于供应商,所以通常我的模型文件中有一个supplier()方法. 到目前为止一切都那么好,当我有一些像Entry :: find(1) – >供应商这 ...

  4. libevent mysql_在 libevent 中使用 MariaDB(MySQL)

    在之前我翻译的官方文档中提到了 MariaDB 提供了对异步 I/O 的支持.那篇文章是一个比较简要的介绍.不过实际适配中,官方也提供了一个完整适配 libevent 的示例代码.本文算是对我上述示例 ...

  5. pyqt tableview mysql_当数据库中添加了一个新条目时,如何在PyQt中更新TableView?

    我正在尝试在PyQt Gui中更新我的TableView,这样每当有新条目添加到QPSQL数据库时,它也会在Gui中的TableView中更新它. 目前,连接工作得很好,可以正确地连接到数据库,并显示 ...

  6. python协程池操作mysql_在python中使用aiomysql异步操作mysql

    之前一直在使用mongo与redis,最近在项目中开始使用mysql数据库,由于现在的项目是全程异步的操作,所以在在网上查了下关于在python中异步的操作mysql,找来找去最后发现aiomysql ...

  7. parquet to mysql_在hive中使用parquet (CDH4.3)

    hadoop版本 cdh4.3 使用impala创建parquet表后,查询会出错. [impala:21000] SELECT * FROM foo;Query: SELECT * FROM foo ...

  8. checkpoint技术mysql_认识MySQL中的Checkpoint技术

    1,checkpoint产生的背景 数据库在发生增删查改操作的时候,都是先在buffer pool中完成的,为了提高事物操作的效率,buffer pool中修改之后的数据,并没有立即写入到磁盘,这有可 ...

  9. 日期加星期存入mysql_在MySQL中添加两个星期的日期?

    要在MySQL中添加两个星期的日期,请使用DATE_ADD()-insert into yourTableName(yourColumnName) values(date_add(now(),inte ...

最新文章

  1. Kafka 3.0重磅发布,都更新了些什么?
  2. 在启动activity之前,调用application的oncreate
  3. Ubuntu学习——第一篇
  4. ASP.NET Core IHostEnvironment和IApplicationLifetime介绍
  5. Java -- 网络编程(一):Client与Server之间的数据传送
  6. tomcat,eclipse,sts绿色运行
  7. 今天的一条条平坦的即时通讯
  8. Android开发学习之TabView选项卡具体解释 -- 基于Android4.4
  9. mysql启动失败2005_数据库2005服务启动不了
  10. 配置LANMP环境(1)-- 安装虚拟机VMware与安装CentOS7.2系统
  11. node项目打包如何隐藏html后缀,详解webpack打包nodejs项目(前端代码)
  12. python定义16进制数组,十六进制字符串到python中的字节数组
  13. sublime text 安装及使用
  14. 计算机创建快捷方式w10,win10中解决无法在桌面添加快捷方式的修复方法
  15. Android Activity 的详细启动过程分析
  16. 1分钟教你快速使用C#查找和替换PDF文件中的文本
  17. 新edge保持百度账号登录
  18. 第十二天-函数名 迭代器
  19. HTML5手机页面触屏滑动上下翻页特效
  20. java中二维数组的定义

热门文章

  1. TCP知识点以及TimeWait和CloseWait原理图
  2. 正则表达式工具_30种有用的正则表达式工具和资源
  3. python正则表达式匹配模式_Python与正则表达式[0] - re 模块的正则表达式匹配
  4. 李子柒品牌营销透视 | 挖掘红人效应外的品牌价值
  5. 企业注册小知识科普问答?
  6. 新东方在线——java开发一面面经(2020视频面试)
  7. Android震动器Vibrator调用
  8. ASP.NET MVC 马伦老师 视频
  9. 学php丢人吗,大学里一个人吃饭很丢人吗? - 窗外事 - 简单学习网论坛_中高考学习交流论坛_中学生学习论坛 - Powered by phpwind...
  10. 为服务器安装网卡驱动