我选择配置XML文件,但运行./vendor/bin/propel sql:build
时出现以下错误
[Symfony\Component\Config\Definition\Exception\InvalidTypeException]
Invalid type for path "propel.database.connections.cfs.attributes". Expected array, but got string
这是我的propel.xml文件
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<config>
<propel>
<database>
<connections>
<connection id="cfs">
<adapter>mysql</adapter>
<classname>Propel\Runtime\Connection\ConnectionWrapper</classname>
<dsn>mysql:host=localhost;dbname=cfs_development</dsn>
<user>cfs_user</user>
<password>cfs_pass</password>
<attributes></attributes>
</connection>
</connections>
</database>
<runtime>
<defaultConnection>cfs</defaultConnection>
<connection>cfs</connection>
</runtime>
<generator>
<defaultConnection>cfs</defaultConnection>
<connection>cfs</connection>
</generator>
</propel>
</config>
..和我的schema.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<database name="cfs" defaultIdMethod="native">
<table name="projects" phpName="Project" namespace="Cfs\Model">
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
<column name="title" type="varchar" size="255" required="true" />
<column name="user_id" type="integer" required="true"/>
<foreign-key foreignTable="users" phpName="User">
<reference local="user_id" foreign="id"/>
</foreign-key>
</table>
<table name="users" phpName="User" namespace="Cfs\Model">
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
<column name="username" type="varchar" size="255" required="true" />
<column name="password" type="varchar" size="255" required="true" />
<column name="salt" type="varchar" size="255" required="true" />
</table>
</database>
我从官方文档中获取了propel.xml配置文件的详细信息,然后它只是简单地运行命令。但是,我得到这个错误?有什么建议吗?
然后我只是尝试使用PHP文件进行数据库配置(propel.php),这次命令运行没有错误。但是,我的数据库没有创建。我试图运行vendor / bin / propel模型:build也是为了看它是否生成了我的类,这也运行没有错误,但我看不出它在哪里生成我的类。
两个配置文件都在我的应用程序的根目录下,这也是我运行每个命令的地方。
答案 0 :(得分:0)
似乎在XML中使用配置文件会产生一些有趣的问题 -
我尝试使用在线转换器将XML转换为YML - 这给了我一个我可以追逐的错误。
使用propel.xml文件时出错:
[Symfony\Component\Config\Definition\Exception\InvalidTypeException]
Invalid type for path "propel.database.connections.unrestricted.attributes". Expected array, but got string
使用propel.yml文件时出错:
[Symfony\Component\Yaml\Exception\ParseException]
Unable to parse at line 8 (near " settings: ").
我将重读此页:
http://propelorm.org/documentation/reference/configuration-file.html
并进行任何我认为有用的修改。我会在它工作时更新。
嗯,它很棒。
我使用了他们的模板,只是使用.yml格式替换了我的数据库信息。为了安全起见,我还将我的multibyte4utf8字符集更改为我的数据库中的标准UTF-8。
答案 1 :(得分:0)
您应该在config.xml
。
dbname
中的dsn-config.xml
也应与schema.xml
中的数据库标记名称相同。
修复此问题并重试,这样会很有效。