0

I am new to Zend Framework 3 and I am doing this tutorial:

I have a xampp, mysql setup.

I have done everything exactly like in this tutorial. Now I am at the point where you configure the database connection. Further I have set up the controller and view.

In the tutorial link above , they are using php to create a database and then in config/autoload/global.php.....the following code:

return [
'db' => [
    'driver' => 'Pdo',
    'dsn'    => sprintf('sqlite:%s/data/zftutorial.db', realpath(getcwd())),
   ],
];

I have edited this to:

'db' => [
'driver' => 'Pdo_Mysql',
'dsn'    => 'mysql:dbname=dbname;host=localhost;charset=utf8;username=myuser;password=mypassword',
],

When I call the url for the index view, there the following error:

Warning: Creating default object from empty value in C:\xampp\htdocs\zendtest\module\Album\src\Controller\AlbumController.php on line 15

Fatal error: Call to a member function fetchAll() on null in C:\xampp\htdocs\zendtest\module\Album\src\Controller\AlbumController.php on line 22

The AlbumController:

 <?php

    namespace Album\Controller;

    use Album\Model\AlbumTable;
    use Zend\Mvc\Controller\AbstractActionController;
    use Zend\View\Model\ViewModel;

    class AlbumController extends AbstractActionController {

    private $table;

    public function __construct(AlbumTable $table)
    {
        $this->table = $table;
    }


    public function indexAction()
    {
        return new ViewModel([
            'albums' => $this->table->fetchAll(),
        ]);
    }

    }

I think that the connection doesn't work??

2 Answers 2

0

can you share your "AlbumControllerFactory.php" ?

if you have not yet created the factory you should do.

1 - Create AlbumControllerFactory that implements FactoryInterface

2 - Inside __invoke function use the Container to inject AlbumTable to your controller

3 - config your mapping in module.config.php

'controllers' => [
    'factories' => [
        Controller\AlbumController::class => Controller\Factory\AlbumControllerFactory::class,
Sign up to request clarification or add additional context in comments.

Comments

0

All simple, you have mistake in key $this, you did write $htis instead )

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.