【问题标题】:Error: Slim instance must be Slim\Views\Twig, Slim\Container given错误:Slim 实例必须是 Slim\Views\Twig,给定 Slim\Container
【发布时间】:2016-06-14 10:28:56
【问题描述】:

我正在 Youtube 上尝试基本的容器教程,但我被困在这部分。我确保给出的是一个 twig 实例而不是一个容器,但错误仍然出现。

这里是 index.php 的容器部分:

$container['view'] = function ($container)
    {
    $view = new \Slim\Views\Twig('src/Views', ['cache' => false,]);
    $view->addExtension(new \Slim\Views\TwigExtension(
    $container->router,
    $container->request->getUri()
    ));

    return $view;
};

$container['loginController'] = function ($container){

    return new \App\Controllers\LoginController($container->view);
};

routes.php:

$app->get('/', 'LoginController:login_redirect');

controller.php:

 use Slim\Views\Twig as View;

protected $view;

public function __construct(View $view){
    $this->view = $view;

}

public function login_redirect($request, $response){
    $this->view->render($response, 'testing.twig');

}

【问题讨论】:

  • 你能在$container 上做一个var_dump() 吗?

标签: php containers slim-3


【解决方案1】:

此处不应将 $container['view'] 作为构造函数参数传递,而不是 $container->view?

$container['loginController'] = function ($container){
    return new \App\Controllers\LoginController($container->view);
};

【讨论】:

    猜你喜欢
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多