2015-12-19 6 views
0

Je suis un débutant avec Propel ORM. J'ai installé l'ORM sur mon serveur. J'ai fait toutes les configurations. Mes classes de modèles sont générées et je peux créer des objets et appeler leurs méthodes spécifiques.Erreur fatale: Classe ConnectionWrapper introuvable dans ConnectionFactory.php

Cependant, lorsque je tente d'appeler la méthode save de la classe propel, il imprime une erreur fatale dans le journal apache. Vous pouvez voir l'erreur du journal ci-dessous:

Fatal error: Class ConnectionWrapper not found in ConnectionFactory.php on line 46

Voici mon fichier composer.php qui génère un fichier autoload.php:

{ 
    "require": { 
    "propel/propel": "[email protected]", 
    "slim/slim": "2.*" 
    }, 
    "autoload": { 
    "classmap": ["generated-classes/"] 
    } 
} 

Voici mon dossier test_service.php que j'appelle propel methods.

<?php 
require_once 'vendor/autoload.php'; 
require_once 'generated-conf/config.php'; 
echo "ENTERED"."\n"; 


$date = date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $date))); 
echo $date."\n"; 

$customer = new Customer(); 
$customer->setName("Jason"); 
$customer->setSurname("Statham"); 
$customer->setType(2); 
$customer->setEmail("[email protected]"); 
$customer->setGender("Male"); 
$customer->setPassword("123"); 
$customer->setSignupDate($date); 



echo $customer->getName()."\n"; 
echo $customer->getSurname()."\n"; 
echo $customer->getType()."\n"; 
echo $customer->getEmail()."\n"; 
echo $customer->getGender()."\n"; 
echo $customer->getPassword()."\n"; 
echo date_format($customer->getSignupDate(), 'Y-m-d H:i:s'); 
$customer->save(); 

echo "EXIT"."\n"; 

?> 

Dans le code ci-dessus, et getset méthodes de Propel class œuvres sans problème. Cependant, quand il s'agit de

$customer->save(); 

L'apache imprime l'erreur dans le journal. Voici la réponse à la demande:

ENTERED 
1970-01-01 02:00:00 
Jason 
Statham 
2 
[email protected] 
Male 
123 
1970-01-01 02:00:00 

Que dois-je manque ici? Merci.

+0

Êtes-vous en train de charger automatiquement les classes? Dépannage est difficile sans voir votre code ... – wogsland

Répondre

0

Je résolu mon problème ...

Le problème est dû au fait que le fichier propel.yaml qui comprend les informations de base de données:

propel: 
database: 
    connections: 
     test: 
      adapter: mysql 
      classname: Propel\Runtime\Connection\ConnectionWrapper 
      dsn: "mysql:host=localhost;dbname=test" 
      user: admin 
      password: admin 
      attributes: 
runtime: 
    defaultConnection: test 
    connections: 
     - test 
    generator: 
    defaultConnection: test 
    connections: 
     - test 

Ce problème est le fichier résolu. Au début, j'ai écrit le chemin du système de la classe ConnectionWrapper au nom de classe et c'était l'erreur. Il prend la relation d'espace de noms de la classe ConnectionWrapper. Donc, quand je l'ai changé avec la relation namespace, le problème est résolu.