Service ‚application.1‘: Multiple services of type App\Model\BaseManager found:
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Stormwinter
- Člen | 11
Ahoj, potřeboval bych poradit, proč nemůžu rozšiřovat třídu o BaseManager.
V BaseManageru mám toto:
namespace App\Model;
use Nette\Database\Context;
use Nette\Object;
use Nette\Utils\DateTime;
/**
* Základní třída modelu pro všechny modely aplikace.
* Předává přístup k práci s databází.
* @package App\Model
*/
abstract class BaseManager extends Object
{
/** @var Context Instance třídy pro práci s databází. */
protected $db;
/**
* Konstruktor s injektovanou třídou pro práci s databází.
* @param Context $database automaticky injektovaná třída pro práci s databází
*/
public function __construct(Context $db)
{
$this->db = $db;
}
A v dalších dvou modelech ji extenduji.
Pokud jí extenduji jen v jednom modelu, tak je vše OK, pokud však vytvořím další model a více. Vypíše to tuto chybu (viz nadpis).
Model 1:
namespace App\Model;
use Nette;
use App\Model\BaseManager;
use Nette\Utils\DateTime;
/**
* Description of UserManager
*
* @author Stormwinter
*/
class UserManager extends BaseManager{
public function Salt($name,$password){
$salt = sha1($name);
$pass = sha1($password . $salt);
return $pass;
}
public function register($data) {
$salt = $this->Salt($data["nickname"], $data["password"]);
unset($data["password2"]);
$data["password"] = $salt;
$date = new DateTime();
$data["regdate"] = $date->format("j.n.Y H:i");
return $this->db->query("INSERT INTO user_users", $data);
}
...
A další:
namespace App\CmsModule\Model;
use App\Model\BaseManager;
use Nette\Object;
use Nette\Database\Context;
/**
* Description of SportsManager
*
* @author Stormwinter
*/
class SportsManager extends BaseManager{
//put your code here
}
Co dělám špatně?