问题标签 [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 投票
3 回答
730 浏览

php - 为什么找不到“类'DI\Bridge\Slim\App'”?PHP

我正在尝试为我的网站创建购物车,我正在遵循以下教程:https ://www.youtube.com/watch?v=tRh467FX12U&list=PLfdtiltiRHWH9JN1NBpJRFUhN96KBfPmd&index=2

在教程中,他使用了来自 GitHub 的 3 种不同的导入,这就是使用 composer 在终端中安装它们的方式:

rosscurrie = ~用户的名字

@Ross-Air = Macbook 的名称

MobileMastersNew = 包含所有网站文件的文件夹的名称

composer = 全局安装

require <...> = 来自 GitHub 的导入

  1. rosscurrie@Rosss-Air MobileMastersNew % 作曲家需要苗条/苗条:^4.0
  2. rosscurrie@Rosss-Air MobileMastersNew % 作曲家需要 slim/twig-view:^3.0
  3. rosscurrie@Rosss-Air MobileMastersNew % 作曲家需要 php-di/slim-bridge
  4. rosscurrie@Rosss-Air MobileMastersNew % 作曲家需要照明/数据库

我对 Laravel 的经验有限,但并不完全陌生。当我尝试加载 index.php 页面时,会出现以下错误:

我的文件夹目录如下:

在此处输入图像描述

我的 ../MobileMasters/app/App.php 是:

我的 ../MobileMasters/bootstrap/app.php 是:

我的 ../MobileMasters/public/.htaccess 文件是:

我的 ../MobileMasters/public/index.php 是:

我的 ../MobileMasters/vendor/autoload.php 是:

最后,我的 ../MobileMasters/composer.json 是:

0 投票
1 回答
317 浏览

twig - 如何将通用模型添加到 Twig 和 Slim4

我将 Twig 和 Slim4 与 DI 容器一起使用(与本教程相同:https ://odan.github.io/2019/11/05/slim4-tutorial.html )。我想知道如何为我的所有树枝视图添加一个通用模型,例如用户对象、常规选项和类似的东西。

这是容器 Twig 初始化:

twig 中间件是 Slim 标准的中间件:Slim\Views\TwigMiddleware

0 投票
1 回答
658 浏览

slim - 如何在 Slim4 中为路由定义设置属性并在中间件中使用它

我需要在路由定义中设置一个自定义属性并将其用作路由中间件。例如,我需要管理引用页面以在登录后重定向用户。

这是我的路线定义:

->setAttribute('norefer',true);是我正在寻找的,似乎它不存在。

我需要->getAttribute("norefer")在中间件中使用此属性,以便可以存储用户访问的最后一个可参考页面:

因此,在会话中,我可以存储最后一个可参考页面,并在登录过程之后使用它来将用户重定向到他的页面。

0 投票
1 回答
2120 浏览

php - 在 Slim 4 中访问中间件中的路由参数

我想知道如何在 Slim 4 的中间件中访问路由参数。

如果我定义了一个带有占位符和附加中间件的路由:

我想{userId}在控制器被调用之前从中间件访问值:

我知道在 Slim 3 中我们可以访问请求对象的属性,但是,它在 Slim 4 中不起作用。路由对象的属性包含以下条目:

  • __routingResults__
  • __route__
  • __basePath__

这些似乎都不包含参数。

0 投票
1 回答
269 浏览

php - 从 Slim 4 中的路由组覆盖注入的类?

我有一个 Slim4 应用程序,由多个模块组成,这些模块分隔在不同的路由组中,如下所示:

MyMiddleware 接收一个接口

当我们设置容器时,我们告诉它要注入哪个类,以便 PHP-DI 知道使用哪个类来构造中间件:

我的主要问题是:

是否有可能以某种方式覆盖IMyInterface::class基于路由组的容器设置的实现?所以我可以有类似的东西:

主容器设置:

具体路由组容器设置:

0 投票
1 回答
227 浏览

php - 为什么容器在中间件之前运行?

如果我们看一下在 slim4网站和其他地方发布的中间件概念。

它应该在请求到达应用程序之前或向用户发送响应时执行。

问题是这样的,因为即使之前执行了一个中间件,应用程序也会调用一个容器:

给我看代码。

配置

会话中间件

闪存消息容器

执行应用

结果

Flash消息需要一个会话开始工作,我已经知道了,中间件应该负责这样做,但它总是在容器之后执行

0 投票
0 回答
36 浏览

php - 超薄路由器参数问题

简单的代码

当我将 (client--side-?validation.pdf) 之类的名称作为参数传递时

喜欢:

我得到如下输出:

你好,客户端——

一些字符,如:?、@、+、# 等有问题。

当我们通过时,Slim 不会返回全名(client--side-?validation.pdf)。

问题: 这将是什么解决方案?

0 投票
0 回答
751 浏览

php - 无法使用 Slim 框架 4 POST 或 PUT - 在 v3 中工作正常

我正在尝试学习苗条的框架,但在我看来,我遇到了一个奇怪的问题。在 Slim 框架 3 中它工作正常。在发布这个问题之前,我已经做了很多研究,但老实说,我找到的所有答案变得更加复杂。

我设法获得所有客户,获得一个客户并删除一个客户。但是 POST(新客户)或 PUT(更新新客户)不起作用。

我会尽量提供更多信息。

最后是customers.php ...我只提供了POST 和PUT,因为这两个不起作用。

错误信息

0 投票
1 回答
105 浏览

php - 如果指定的路由不存在,php slim 应用程序不会重定向到 index.php

我刚刚完成了设置 php slim 应用程序的安装指南。一切正常,除非用户指定应用程序中不存在的 url,他没有被重定向到 index.php。

我认为这与位于公共目录而不是项目根目录中的 index.php 有关。

我的文件结构如下所示:

-public
----.htaccess
----index.php
-src
-vendor
----composer
----fig
----nikic
----
psr ----ralouphie
---- slim

我的 .htaccess 文件包含以下内容:

顺便说一句,当我指定一个不存在的路线时,我得到一个 Slim\Exception\HttpNotFoundException 异常。这是有道理的,因为路线不存在。但它应该重定向到 index.php

0 投票
0 回答
106 浏览

php - 可以找到一个 PHP 类,但不能找到另一个

我正在使用 Slim 4 框架并试图使路由正常工作,但是对于我的一生,我无法弄清楚为什么controller file找不到我的。我习惯于为laravel我处理所有这些事情,但我想尝试slim我的最新应用程序。

我一直使用http://www.slimframework.com/docs/v4/objects/routing.html作为我的指南,并希望我的路线被定义为ControllerHere:FunctionHere,但由于某种原因它不起作用。

从我的index.php我包含一个routes.php文件,其内容是

然后我有两个文件:Test1ControllerTest2Controller,都与我的文件在同一个应用程序文件夹中routes.php

按照链接中的指南,我的/test1路线和 Test1Controller 完美加载,但我无法让 Test2Controller 工作,其代码是:

有人可以看到我做错了什么吗?我得到的错误是: