dongqiao8421 2017-10-30 16:39
浏览 121
已采纳

函数Slim \ Views \ TwigExtension :: __ construct()的参数太少,0通过,预期正好2

I'm trying to generate a link to a delete method using the urlFor helper, and i am using twig extensions to utilize the urlFor method but im getting the error

Too few arguments to function Slim\Views\TwigExtension::__construct(), 0 passed in /Applications/MAMP/htdocs/eli35/src/dependencies.php on line 47 and exactly 2 expected

not sure what to include in the parameters.

Ultimately im trying to click on the delete link to delete a task.

Any suggestions, thanks in advance.

Here is the dependencies.php file.

<?php
// DIC configuration




$container = $app->getContainer();


// view renderer
$container['renderer'] = function ($c) {
    $settings = $c->get('settings')['renderer'];
    return new Slim\Views\PhpRenderer($settings['template_path']);
};

// monolog
$container['logger'] = function ($c) {
    $settings = $c->get('settings')['logger'];
    $logger = new Monolog\Logger($settings['name']);
    $logger->pushProcessor(new Monolog\Processor\UidProcessor());
    $logger->pushHandler(new Monolog\Handler\StreamHandler($settings['path'], $settings['level']));
    return $logger;
};


$container['db'] = function($c){
    $settings = $c->get('settings')['db'];
    $pdo = new PDO("mysql:host=" . $settings['host'] . ";dbname=" . $settings['dbname'] . ";port=" . $settings['port'],
    $settings['user'], $settings['pass']);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    return $pdo;
};



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

    $view->parserExtensions = array(
        new \Slim\Views\TwigExtension(),
    );

    return $view;
};

here is the section of the TodosController.php for my delete method

public function deleteTodo($request, $response, $args)
{
    $sth = $this->db->prepare("DELETE FROM tasks WHERE id=:id");
    $sth->bindParam("id", $args['id']);
    $sth->execute();
    $todos = $sth->fetchAll();


    return $this->response->withRedirect('/todos');


}

here is the route link for my delete method, its in the routes file

$app->delete('/todo/[{id}]', '\App\Controllers\TodosController:deleteTodo')->setName("deletetask");

here is todos.twig where im displaying the delete link

{% extends "templates/layout.html" %}

{% block content %}
<h1>My Todos</h1>

<ol>
  {% for task in todos %}
        <div class="myl">
        <li><h4>{{ task.task}}</h4></li>
        <small style="font-style:italic">{{task.created_at |date("m/d/Y")}}</small></br>


        <a href="{{ urlFor('deletetask', {'id': task.id}) }}">Delete</a>



        </div>
    {% endfor %}

</ol>
{% endblock %}
  • 写回答

1条回答 默认 最新

  • doumi1884 2017-10-31 05:37
    关注

    Remove the extra junk code.

    $container['view'] = function ($container) {
            $view = new \Slim\Views\Twig( 'views', [
                'cache' => false,
            ]);
            $view->addExtension(new \Slim\Views\TwigExtension(
                $container->router,
                '/'
            ));
    
            return $view;
        };
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊