- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在一个 Silex 项目上,我使用类来处理不同的问题:
$connection = new Connection($app);
$app->match('/connection', function () use ($app, $connection) {
$connexion->connectMember();
return $app->redirect($app['url_generator']->generate('goHome'));
})->method('GET|POST')->bind('doConnection');
在我的“Connection”类的函数“connectMember()”中,我有:
[...]
if($isMember){
[...]
}else{
return $this->_app['twig']->render(
'message.twig',
array('msg' => "This member does not exist.", 'class' => 'Warning'));
}
[...]
但是render()方法不起作用。我想显示的错误消息没有显示,而是启动了“$ app-> redirect (...)”。
如何让我的类使用当前对象 Silex\Application ?有没有更好的方法将自定义类绑定(bind)到 Silex 应用程序的实例?
非常感谢您的回答!
版本:添加信息
如果我使用:
return $connexion->connectMember();
显示错误消息。但这不是一个好的解决方案。 'connection' 类调用也使用此代码的其他类:
$this->_app['twig']->render(...).
如何使 $ this->_app(存在于我的类中)对应于在我的 Controller 中创建的变量 $app?
最佳答案
为Connection
(或Connexion
??)类创建服务并注入(inject)应用程序:
use Silex\Application;
class Connection
{
private $_app;
public function __construct(Application $app)
{
$this->_app = $app;
}
// ...
}
$app['connection'] = function () use ($app) {
return new Connection($app); // inject the app on initialization
};
$app->match('/connection', function () use ($app) {
// $app['connection'] executes the closure which creates a Connection instance (which is returned)
return $app['connection']->connectMember();
// seems useless now?
return $app->redirect($app['url_generator']->generate('goHome'));
})->method('GET|POST')->bind('doConnection');
关于php - 在我的自定义类中注入(inject) Silex $app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19565709/
我正在编写一个 Web 应用程序,它有一个前置网站,然后是一个管理控制台。我希望能够有一个设置,当设置为 true 时,意味着在前端网站上显示一个保留或维护页面。 我的路由配置目前在一个 yaml 文
我正在我的 app.php 文件中做这样的共享服务: $app['rules'] = $app->share(function() use($app) { return new MyProje
这是一个关于第一次使用 Silex 的非常基本的问题。 我要安装this project链接自 this tutorial .我已经按照 these instructions 通过 Composer
我正在使用 Silex 1.1 和 Monolog 1.0.0。我的代码和我的问题: $app->register(new Silex\Provider\MonologServiceProvider(
我环顾四周,似乎无法弄清楚如何在使用 Silex 时链接到静态文件。我已经看到一些关于 Symfony 的类似问题/答案,但它们涉及 YML 路由文件,我不将其与 Silex 一起使用。 我的情况 我
我环顾四周,似乎无法弄清楚如何在使用 Silex 时链接到静态文件。我已经看到一些关于 Symfony 的类似问题/答案,但它们涉及 YML 路由文件,我不将其与 Silex 一起使用。 我的情况 我
我在 Silex 中定义了几个路由,但我不知道如何捕获不存在的路由。 例如: $app->get('/category/{name}', 'Acme\Controller\Main::category
我想将 Silex 与 MongoDB 一起使用。我想最好的方法是使用再次使用 Doctrine MongoDB 库的 Silex 扩展。 现在有两个 Silex Extensions 似乎提供了这个
我安装了 phpunit 3.6.12 和 Silex。在我的应用程序的根目录中,我有包含简单测试文件 BlogFunctionTest.php 的测试目录 assertGreaterThan(0,
我最近将一切正常的 Silex v1.3 项目迁移到了 Silex v2。我收到一个 Twig 错误,我不明白原因 Twig_Error_Runtime in Template.php line 59
我正在开发一个带有 silex-skeleton 的最新版本的项目。尝试使用 share 方法时显示以下错误: 代码: $app['login'] = $app->share(function() u
我有一个大问题,我不知道为什么 silex 异常处理程序不捕获异常? 我的简单代码如下所示: error(function (\Exception $e, $code) { exit('asd');
在 Symfony 中,可以通过在 security.yml 文件中添加 invalidate_session: false 来避免 session 在注销时被破坏。 遗憾的是,这在 Silex 中不
我尝试使用 silex 文档为 LDAP 身份验证编写自定义身份验证提供程序 - Defining a custom Authentication Provider . 但如果我查看 $app['se
我想要一条匹配“任何东西”的路线。如果数据库中存在具有给定路径的页面,我想从“任何”值中查找。如果是,则需要处理此路由,否则应处理下一个匹配的路由。 有没有简单的方法可以解决这个问题,还是我错过了路线
我试图在 Controller 上设置错误处理程序,以捕获可能导致页面故障的所有内容。例如:在这种情况下,我试图捕获我的方法使用错误的参数调用外部API后可能发生的任何错误,但是除了给我提供典型的Cl
Silex 中是否可以根据抛出的异常使用错误处理程序? 我知道这可以通过单个异常处理程序和抛出异常的类名上的 switch 语句来实现,但对我来说,“Silex 方式”似乎更干净,但不起作用。 这就是
我的目标是将FOQElasticBundle与我的Silex网站链接。 问题是FOQElasticBundle的documentationn声明我只需要在config.yml文件中放入一些基本内容即可
有没有我可以通过 $app 变量 (Silex\Application) 调用的函数来访问 Web 根目录和应用程序根目录? 假设我的项目布局是这样的 /src run() 在 src/cont
我的路由有三个参数,userid 总是必需的,a 和 b 是可选参数。可以给出 a or (a and b) or (neither a nor b): $app->get('/show/{useri
我是一名优秀的程序员,十分优秀!