问题标签 [slim-4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1293 浏览

php - 如何使用 Slim-Skeleton 中演示的 PHP-DI 设置访问 slim4 的 routeParser?

我已经建立了一个基于 SlimPHP 团队的Slim Skeleton应用程序的新应用程序。在我的路由定义中,我希望能够访问Slim4 文档中描述的路由解析器。因此,例如,我希望能够编辑骨架的app/routes.php文件,如下所示:

$app->getRouteCollector()->getRouteParser()不起作用是有道理的,因为$app这里没有定义。但我认为我们会改为调用$this->getRouteCollector()->getRouteParser();,但这会产生错误:"Call to undefined method DI\\Container::getRouteCollector()"

看来我的困惑肯定是关于依赖注入,这对我来说是新的,对我来说不是自然而然的。老实说,我很想在其他地方(在 index.php 中?)定义 $routeParser 变量,这样我就可以在任何路由定义中访问它,而不必每次都调用 $app->getRouteCollector()->getRouteParser()。但目前我愿意接受任何有效的方法。

0 投票
1 回答
2346 浏览

php - 如何在 slim 框架 4 中使用学说?

尝试将原则与 slim 框架 4 一起使用,但没有可用的文档。通过以下链接http://www.slimframework.com/docs/v3/cookbook/database-doctrine.html上的信息给出错误。

找不到类“超薄容器”

0 投票
2 回答
1299 浏览

slim - Slim 4 在没有 $app 的情况下将所有路由都放入控制器中

我需要将所有已注册的路由放入控制器中。在 slim 3 中,可以通过

使用 $app 很容易$routes = $app->getRouteCollector()->getRoutes();

有任何想法吗?

0 投票
1 回答
2703 浏览

php - Slim 4 中的路由中间件不会停止调用路由中的可调用对象

我正在为 Slim4 中的授权中间件苦苦挣扎。这是我的代码:

身份验证中间件检查用户并正常工作。

ProviderController 中的get方法是

SuperuserAuthorization 看起来像这样

问题是即使用户不是超级用户,应用程序也会继续执行。结果,我得到了所有提供者的 json 和 http 代码 403:/

路由中间件不应该阻止请求进入应用程序并立即返回 403 吗?

我知道我可以创建新的空响应,状态为 403,所以数据不会出来,但关键是请求永远不应该超出这个中间件,我是对的还是我只是在这里误解了一些东西......</p >

任何帮助将不胜感激 :)

- - - - - - - 解决方案 - - - - - - - -

感谢@Nima,我解决了它。中间件的更新版本为:

0 投票
1 回答
241 浏览

php - 如何从 Redis 缓存创建新流

我将图像存储在redis中。

并试图取回它:

它给了我这个错误:

$image变量是该图像的字节。如何将这些字节转换为流?

0 投票
0 回答
42 浏览

slim - Slim 4 中间件重定向*在途中*

我有以下中间件,我将附加到我的路线:

现在这个重定向有效。但是,它会在点击应用程序并退出时出现重定向。die('hello');我可以通过在我的控制器中放置一个来确认这一点。如果用户未经过身份验证,那么它不应该走那么远,因为应该在进入的途中附加重定向。但是,即使我没有经过身份验证,控制器也会被激活。这是不好的。在 Slim 3 中,我可以访问 $response 对象,并将其通过 $next 处理程序传入。但似乎在 Slim 4 中,我只有请求 $handler 才能访问应用程序,然后我才开始使用 $response 来决定是否要重定向到 /login。

如何在进入而不是退出时返回重定向 $response?

0 投票
1 回答
493 浏览

php - Slim 4 PUT 和 DELETE 表单提交

如何在 Slim 4 中进行 PUT 和 DELETE 表单提交?我有以下路线:

这是我的 :

这就是我在 Slim 3 中的做法。

但它不会转到 editSubmit 方法,而是转到 createSubmit 方法。

如何使用这些方法提交?

0 投票
1 回答
1662 浏览

php - Slim 4:使用容器与模型和控制器共享数据库连接,无需 Eloquent

我正在使用 SLIM 4 开始一个 PET 项目,但我找不到在模型中使用与数据库的连接的方法。即使控制器工作正常。

我使用了一个容器来移动不同层之间的连接。

应用程序.php

配置文件

依赖项.php

/Models/BaseModel.php

/Models/ApplicantStatus.php

当使 $ this-> container 的 var_dump() 为 NULL 时,理论上他们威胁要从 BaseModel 初始化和扩展它...

此方法申请人状态-> getStatusName(); 它在控制器内部调用。

也许这就是我做错的地方......

谢谢

0 投票
2 回答
1065 浏览

slim-4 - Slim 框架在每个请求上都会抛出 405 Not Found 错误

我正在尝试为我的 Angular 应用程序构建 Slim Framework Version 4 api。

在我提出的每一个请求中,我都会得到

好的部分是我的 api 按预期工作正常。但是我每次通话都会看到这个错误。

我该如何克服这一点。

如果我尝试从浏览器调用 get ,则没有错误。

在此处输入图像描述

如果我进行 ajax 调用,网络选项卡不会显示错误

在此处输入图像描述

但是我的命令提示符抛出了这个错误

在此处输入图像描述

编辑 1

添加路由定义

编辑 2

添加角度代码

答案 我需要添加

在我的 index.php 中接受所有选项请求

http://www.slimframework.com/docs/v4/cookbook/enable-cors.html

0 投票
1 回答
226 浏览

eloquent - 使用 Slim 框架在 Eloquent 中访问 $app 或 $request

我正在用 Eloquent 构建一个 Slim Framework 4 Api 应用程序。

公共/index.php

中间件

控制器

模型

我想在我的模型中访问 $request,以便我可以获取试图在 CanDelete 上访问的用户信息。