zprovoznění komponenty pro login form

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

Zdravím,
snažil jsem se rozchodit komponentu na přihlašovací formulář a ztroskotal jsem hned v úvodu:

DefaultPresenter.php

protected function createComponentLogin(){
		$login = new \Login\LoginControl;
		return $login;
	}

Chybička:

Class 'Login\LoginControl' not found.

Přičemž samozřejmě existuje. Napadá někoho něco.
Dík

Editoval esorimmer (21. 11. 2011 16:52)

Jan Endel
Člen | 1016
+
0
-

Můžeš sem hodit jeho kód, potažmo říct kde se soubor v adresářové struktuře nachází?

Filip Procházka
Moderator | 4668
+
0
-

Smaž cache

esorimmer
Člen | 23
+
0
-

Jasný, ta strukutra je:

app/
-AdminModule
-FrontModule/presenters/DefaultPresenter.php
-componensts/Login/LoginControl.php
-presenters/BasePresenter.php

A kod pro LoginControl.php

use Nette\Application\UI\Control;

class LoginControl extends Control {
    //put your code here
    public function __construct() {
        parent::__construct();
    }
    public function render() {
	$template = $this->template;
	$template->setFile(__DIR__ . '/LoginControl.latte');
	$template->render();
    }
    public function createComponentloginForm() {
        $form = new Nette\Application\UI\Form;
        $form->addPassword( 'password', 'Zadej heslo' );
        $form->addSubmit( 'login', 'Login' );
        return $form;
    }
}
Acnnair
Člen | 34
+
0
-

Dávaš zlý namespace. Buď pridaj do login control namespace:

namespace Login;

alebo komponentu vytváraj ako:

$login = new \LoginControl;

Namespace nieje to isté ako adresár kde je uložená trieda.

pepakriz
Člen | 246
+
0
-

V LoginControl.php chybí namespace:

namespace Login;
esorimmer
Člen | 23
+
0
-

To už jsem zkoušel. Já už jsem zkoušel mnoho věcí, ale právě nevím kde je zakopán pes :-(

esorimmer
Člen | 23
+
0
-

Aha, tak

$login = new \LoginControl;

„funguje“ v tom smyslu, že mi to místo laděnkdy vyhodí Server Error (500) :/

Acnnair
Člen | 34
+
0
-

Pozri obsah logov (/log), zmaž cache, prípadne zapni ladenku v bootstrap.php na

Debugger::enable(Debugger::DEVELOPMENT);

ak to skúšaš na ostrej.

esorimmer
Člen | 23
+
0
-

To Acnnair: Laděnku jsem zkoušel zapnout, ale přijde mi že funguje jen na Fatal erory na ostrém provozu.
Do logu jsem už koukal, tam to po tvé radě s \LoginControl psalo že: ‚Missing template file components/Login/LoginControl.latte‘

Takže ted už to je vyřešené.
Díky za nakopnutí.