Слишком мало аргументов для функции App \ Models \ Task :: __ construct (), 0 передано в строке 26 и ровно один

Я пытаюсь получить доступ к моим моделям задач в контроллере, используя php slim, но я получаю эту ошибку

Too few arguments to function App\Models\Task::__construct(), 0 passed on line 26 and exactly one on TodoController.php

Какие-либо предложения ? спасибо заранее, я ссылался на аналогичные вопросы как это но я не мог связать это с тем, что у меня было.

В конечном итоге я хочу получить методы из модели Task.php и вызвать их в контроллере, когда это необходимо.

TodoController.php

<?phpnamespace App\Controllers;

use Slim\Http\Request;
use Slim\Http\Response;

use App\Models\Task;

class TodosController extends BaseController
{

// public function getTodos($request, $response, $args)
// {
//  $sth = $this->db->prepare("SELECT * FROM tasks ORDER BY task");
//  $sth->execute();
//         $todos = $sth->fetchAll();

//        return $this->c->view->render($response, 'todos.twig', ['todos' => $todos]);

// }

public function index()
{
$tasks = new Task();
$tasks->getTodos();}

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->fetchObject();
$url = urlFor($todos);
var_dump($url);
return $this->response->withJson($todos)->withRedirect('/todos');}

И если это поможет, вот мой Task.php

<?php

namespace App\Models;use Slim\Views\Twig as View;
use Interop\Container\ContainerInterface;

class Task
{

protected $c;
public $db;

public function __construct(ContainerInterface $container)
{
$this->c = $container;
$this->db = $container['db'];

}

public function getTodos($request, $response, $args)
{
$sth = $this->db->prepare("SELECT * FROM tasks ORDER BY task");
$sth->execute();
$todos = $sth->fetchAll();

return $this->c->view->render($response, 'todos.twig', ['todos' => $todos]);

}}

Я также рассмотрел еще один подобный пример как это, Однако до сих пор не мог понять, что я делал не так.

-1

Решение

public function index($req, $res, $args)
{
$tasks = new Task($this->container);
$tasks->getTodos($req, $res, $args);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector