5

我正在尝试几天来设置和使用 Propel now 2.0。PHP版本为5.4.4-14+deb7u5

我做了什么:

0) 在 /var/www 中带有文件夹“test”的新 LAMP

1) Composer.json 与

{
    "require": {
        "propel/propel": "2.0.*@dev"
    }
}

(也尝试了主页中指示的alpha,没有成功,下载但我无法使用)

2)它下载所有必要的文件。

3)我可以启动“vendor/bin/propel”并在一些绿色文本后退出。

4) 我使用http://propelorm.org/documentation/02-buildtime.html中指示的外键创建 schema.xml

5)我设置了 buildtime.cconfiguration

6)我可以创建sql:build模型:构建(我在生成的sql中找到bookstore.sql,在生成的类中找到类)

7)我不能插入 sql。我启动sql:insert,屏幕上没有错误,但数据库中没有插入(连接/密码没问题,仔细检查)。

8) 我将自己的 SQL 加载到数据库中。

9)我用这个创建一个 index.php:

<?php
// setup the autoloading
require_once 'vendor/autoload.php';
use Propel\Runtime\Propel;
use Propel\Runtime\Connection\ConnectionManagerSingle;
$serviceContainer = Propel::getServiceContainer();
$serviceContainer->setAdapterClass('bookstore', 'mysql');
$manager = new ConnectionManagerSingle();
$manager->setConfiguration(array (
  'dsn'      => 'mysql:host=localhost;dbname=my_db_name',
  'user'     => 'my_db_user',
  'password' => 's3cr3t',
));
$serviceContainer->setConnectionManager('bookstore', $manager);

echo 'All ok, for now...';

$author = new Author();
$author->setFirstName('Jane');
$author->setLastName('Austen');
$author->save();

/* /end of php file */ 

回显正常打印,但下一行脚本退出并出现错误 500,并且在 Apache 日志中我读到“找不到类作者”。

除了指南中的说明之外,还有其他配置需要调整吗?

4

4 回答 4

7

我通过将其添加到我的 composer.json 然后再次运行安装解决了类似的情况。

 "autoload": { 
      "classmap": ["generated-classes/"] 
 } 
于 2014-04-10T21:33:28.833 回答
2

我也有这个错误。显然问题出在自动加载配置并运行php composer.phar dump-autoload命令修复它。

php composer.phar dump-autoload

于 2015-05-23T20:55:06.987 回答
1

如果你想解决这个问题,你应该结合 jerrygarcuih 和 Abaobi Orajiaku 的遮阳篷。感谢你们。

将模型文件夹添加到 composer.json

 "autoload": { 
      "classmap": ["generated-classes/"] 
 } 

然后运行作曲家'dump-autoload'。

所有生成的类都应该在同一个命名空间中。

于 2015-09-18T22:00:24.723 回答
1

我有一个类似的问题。我通过包含类映射的确切路径来解决它。

"autoload": {
    "classmap": [
        "path/to/generated-classes/",
        "path/to/generated-classes/Base/",
        "path/to/generated-classes/Map/"
    ]
}
于 2017-01-30T13:57:23.093 回答