cesta Nette\Database\Context $database

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Dovodo
Člen | 3
+
0
-

Zdravím,
dělám zdejší tutoriál „Píšeme první aplikaci!“- Úvodní stránka. https://doc.nette.org/…rt/home-page
V Presenteru se jako parametr konstruktoru předává cesta Nette\Database\Context $database – mohl by mně prosím někdo poradit, co tahle cesta vůbec znamená?
Díky

Dovodo
Člen | 3
+
0
-

hmm, no stále mi Laděnka vyhazuje chybu „Class Nette\Database\Content needed by App\Presenters\HomepagePresenter::__construct() not found. Check type hint and ‚use‘ statements“…

David Matějka
Moderator | 6445
+
+1
-

ne Content ale Context

Editoval matej21 (12. 1. 2015 22:18)

Dovodo
Člen | 3
+
0
-

ježiši díky, toho sem si vůbec nevšiml. Už to faká

Zdenek
Člen | 4
+
0
-

Ahoj, dělám tutoriál quickstart a mám podobný problém. Prosím o radu.
Laděnka mi vyhodí chybku: Service '20_App_Model_UserManager': Service of type Nette\Database\Context needed by App\Model\UserManager::__construct() not found..

Dle tutoriálu bych měl měnit v podstatě zatím jen config.local.neon a presenter HomepagePresenter.php. Tak mě zaráží, proč něco chybí __construct(). Myslel jsem, že je to díky špatnému nastavení v config.local.neon protoze se boostrapu v configuraku volá, ale chybku dle zdrojového GitHubu jsem nenašel. Takže chyba bude mezi klávesnicí a židlí. Prosím o radu, jak z toho ven.

Můj config.local.neon:

parameters:
	nette:
		database:
		dsn: 'mysql:host=127.0.0.1;dbname=quickstart'
		user: root
		password: xxhesloxx
		options:
			lazy: yes

Můj presenter:

namespace App\Presenters;

use Nette,
	App\Model;


class HomepagePresenter extends BasePresenter
{
	/** @var Nette\Database\Context */
	private $database;


	public function __construct(Nette\Database\Context $database)
	{
		$this->database = $database;
	}

	public function renderDefault()
	{
		$this->template->posts = $this->database->table('posts')
			->order('created_at DESC')
			->limit(5);
	}

}

Díky.

Jan Tvrdík
Nette guru | 2595
+
+1
-

Ta sekce nette v config.local.neon musí být na nejvyšší úrovní, tj. ne pod parameters. Naopak dsn, user… musí být pod database. Správně tedy takto:

nette:
    database:
        dsn: 'mysql:host=127.0.0.1;dbname=quickstart'
        user: root
        password: xxhesloxx
        options:
            lazy: yes
Zdenek
Člen | 4
+
0
-

Jan Tvrdík napsal(a):

Ta sekce nette v config.local.neon musí být na nejvyšší úrovní, tj. ne pod parameters. Naopak dsn, user… musí být pod database. Správně tedy takto:

nette:
    database:
        dsn: 'mysql:host=127.0.0.1;dbname=quickstart'
        user: root
        password: xxhesloxx
        options:
            lazy: yes

Máte pravdu, bylo to tím „parameters:“. Moc děkuju za pomoc. [problém vyřešen]