Frage

Ich bin neu in Lehre. Ich habe eine Bootstrap-Datei wie die folgenden:

require_once(dirname(__FILE__)."/../conf/general.php");
require_once(dirname(__FILE__).'/Doctrine/lib/Doctrine.php');
spl_autoload_register(array('Doctrine', 'autoload'));

$manager = Doctrine_Manager::getInstance();
$manager->setAttribute(Doctrine::ATTR_VALIDATE, Doctrine::VALIDATE_ALL); 
$manager->setAttribute(Doctrine_Core::ATTR_AUTO_ACCESSOR_OVERRIDE, true); #for accessor  overriding
$manager->setAttribute(Doctrine_Core::ATTR_AUTOLOAD_TABLE_CLASSES, true); #in order to be able to use the XTable classes
$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING,    Doctrine_Core::MODEL_LOADING_CONSERVATIVE); #to conservatively load files
$manager->setAttribute(Doctrine::ATTR_EXPORT, Doctrine::EXPORT_ALL); 

$dsn = "mysql:dbname=".DBNAME.";host=".DBHOST;
$dbh = new PDO( $dsn, DBUSERNAME, DBPASS );
$conn = Doctrine_Manager::connection( $dbh ); 
Doctrine_Core::loadModels('doc_models'); #In order to be able to work with models

php bootstrap.php
Befehl funktioniert wie erwartet. Aber ich habe eine Datei X.php unter Verzeichnis Y und i erfordern bootstrap.php Datei in X.php, aber wenn ich die X.php im Verzeichnis Y wie
 php X.php
lief bekam ich die folgende Ausnahme:

Doctrine_Exception: You must pass a valid path to a directory containing Doctrine models in /path_to_directory_of_bootstrap_file/Doctrine/lib/Doctrine/Core.php on line 635

Nun, wie kann ich das beheben dieses Problem?

BTW, wenn ich X.php und bootstrap.php im selben Verzeichnis es wie erwartet funktioniert. Ich habe auch versucht mit absoluten Pfaden zu verlangen, aber dies nicht mein Problem zu lösen. Ich teste auf Ubuntu 9.10 und Lehre von Birne installiert. Lehre Version ist 1.2.0.

War es hilfreich?

Lösung

Haben Sie versucht, absolute Pfade während erfordern mit? Realpath können Sie diese Pfade helfen erstellen.

Andere Tipps

Ich denke, dieser Fehler ausgelöst wird, wenn Lehre einiger Modelle Verzeichnisse zu existieren erwartet. Der Fehler tritt auch auf, wenn Sie SQL aus einem schema.yml zu erzeugen versuchen, bevor Sie die Modellklassen aufgebaut haben. Wenn die Modellklassen gebaut werden sie eine Reihe von Verzeichnissen erstellen und es ist diese, dass ich glaube, Sie fehlen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top