Ich habe einen zweiten Manager für meine zweite Datenbank erstellt. In dieser Basis erstelle ich eine Tabelle, die meine Benutzer enthält. Das Problem ist, dass Symfony keine Benutzer aus dieser Datenbank lädt.Authentifizierung mit einem zweiten Manager
hier ist ein Auszug meiner config.yml:
Lehre Konfiguration
doctrine:
dbal:
default_connection: default
connections:
default:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
seconddb:
driver: pdo_mysql
host: "xx.xx.xx.xx"
port: "3306"
dbname: "acme_test"
user: "acmegamestest"
password: "mypassword"
charset: UTF8
# if using pdo_sqlite as your database driver:
# 1. add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# 2. Uncomment database_path in parameters.yml.dist
# 3. Uncomment next line:
# path: "%database_path%"
orm:
default_entity_manager: default
auto_generate_proxy_classes: "%kernel.debug%"
#naming_strategy: doctrine.orm.naming_strategy.underscore
entity_managers:
default:
connection: default
mappings:
acmeAdminBundle: ~
acmeBlogBundle: ~
gedmo_translatable:
type: annotation
alias: GedmoTranslatable
prefix: Gedmo\Translatable\Entity
is_bundle: false
# make sure vendor library location is correct
dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity"
seconddb:
connection: seconddb
mappings:
acmeJoueurBundle: ~
und hier ist ein Auszug meiner security.yml:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
Acme\JoueurBundle\Entity\Players:
algorithm: sha512
encode_as_base64: false
providers:
seconddb:
entity:
class: Acme\JoueurBundle\Entity\Players
property: username
manager_name: seconddb
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
administration:
pattern: ^/admin
provider: fos_userbundle
context: administration
form_login:
#csrf_provider: security.csrf.token_manager
login_path : fos_user_security_login
check_path : fos_user_security_check
failure_path : null
default_target_path : /admin
logout:
path : fos_user_security_logout
target : /connexion
anonymous: true
frontend:
pattern: ^/
provider: acme_joueurbundle
context: frontend
form_login:
#csrf_provider: form.csrf_provider
login_path : acme_players_login
check_path : acme_players_check
failure_path : null
default_target_path : acme_players_userprofile
logout:
path : acme_players_logout
target : acme_players_login
anonymous: true
und meine Einheit implementiert " AdvancedUserInterface, \ Serializable " mit dieser Funktion:
//////////////////////////liaison pour symfony////////////////////////////
public function getRoles()
{
return array('ROLE_PLAYERS');
}
public function getSalt(){
return $this->salt;
}
public function eraseCredentials(){
}
public function isAccountNonExpired()
{
return true;
}
public function isCredentialsNonExpired()
{
return true;
}
public function isAccountNonLocked()
{
return !$this->banned;
}
public function isEnabled()
{
return $this->active;
}
/** @see \Serializable::serialize() */
public function serialize()
{
return serialize(array(
$this->id,
$this->username,
$this->password,
$this->active
// see section on salt below
// $this->salt,
));
}
/** @see \Serializable::unserialize() */
public function unserialize($serialized)
{
list (
$this->id,
$this->username,
$this->password,
$this->active
// see section on salt below
// $this->salt
) = unserialize($serialized);
}
/////////////////////////////////////////////////////////////////////////////
Allerdings, wenn ich versuche, eine Verbindung bekomme ich diese Fehler in Dump-Funktion:
und im Abschnitt Lehre bekomme ich diese:
Ist das, was Sie wissen, die Lösung? Hoffe, du kannst mir helfen. Dank
keine Änderung !! es funktioniert nicht.sehr komisch !! das FOSuserbundle, ich benutze es für die Verwaltung der Website und AcmeJoueurBundle, ich benutze es für Spieler im Frontend !! – strauss
Ok, ich habe es nicht verstanden ... Ich dachte, du könntest dich nicht mit der zweiten Datenbank verbinden. Deine Frage hat nichts mit der Doctrine-Verbindung zu tun, die bereits funktioniert ... Du müsstest deine Entität (zumindest die wichtigen Teile) hinzufügen, damit wir dir helfen können. Vielleicht sind die Passwort- oder Salzfelder in der. Zu klein Datenbank und die Zeichenfolgen sind abgeschnitten. Vielleicht ist deine Zweigform falsch formatiert. Es gibt viele mögliche Gründe. –
Ja, wenn ich versuche, mich mit Formular Login zu verbinden, die Dump zurück mir "schlechte Anmeldeinformationen" und ich habe den Eindruck, dass die Symfony keine Entity Player laden, No SQL-Abfrage wird in meinem zweiten Manager gestartet, aber die Konfiguration ist korrekt – strauss