Doctrine 버전 1.1.0에서 열 이름의 대소 문자에 문제가 있습니다. 또한, MySQL 데이터베이스 테이블에서Doctrine 1.1의 대문자 열 이름과의 이상한 동작으로 인해 예외가 발생했습니다.
abstract class BaseProductsXsell extends Doctrine_Record
{
public function setTableDefinition()
{
$this->setTableName('products_xsell');
$this->hasColumn('ID', 'integer', 4, array('type' => 'integer', 'length' => 4, 'primary' => true, 'autoincrement' => true));
$this->hasColumn('products_id', 'integer', 4, array('type' => 'integer', 'length' => 4, 'unsigned' => 1, 'default' => '1', 'notnull' => true));
// and so on...
}
}
"ID"의 열 이름은 대문자입니다 :
나는이 정의와 기록 (법인)이있다. 하지만이있는 쿼리 후 열 이름을 인출하려고하면
$query = Doctrine_Query::create()->select('m.*')->from("ProductsXsell m");
$collection = $query->execute();
$columns = $collection->getTable()->getColumnNames();
print_r($columns);
출력은 다음과 같습니다
Array
(
[0] => id
[1] => products_id
...
)
그래서 어디서나 교리 연결의 경우 속성을 설정하지 않은 기본값 (Doctrine :: CASE_NATURAL)이어야합니다.
이 다음과 같은 오류가 발생합니다
Fatal error: Uncaught exception 'Doctrine_Record_UnknownPropertyException' with message 'Unknown record property/related component "id" on "ProductsXsell"' in /opt/hocatec/bin/libs/Doctrine/Doctrine/Record/Filter/Standard.php:55
Stack trace:
#0 /opt/hocatec/bin/libs/Doctrine/Doctrine/Record.php(1282): Doctrine_Record_Filter_Standard->filterGet(Object(ProductsXsell), 'id')
#1 /opt/hocatec/bin/libs/Doctrine/Doctrine/Record.php(1240): Doctrine_Record->_get('id', true)
#2 /opt/hocatec/bin/libs/Doctrine/Doctrine/Access.php(117): Doctrine_Record->get('id')
#3 /opt/hocatec/bin/models/HocaSync.php(368): Doctrine_Access->offsetGet('id')
무엇에 관한 것입니까? 제가 게시 한 링크를 읽을 수 있습니다. – Guido
혼자서는 의미가 없으므로 대상 자원이 앞으로는 보장되지 않으므로 혼자있는 링크는 [잘못된 대답으로 간주됩니다] (http://stackoverflow.com/faq#deletion)입니다. [여기에 대답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 바람직합니다 (답을 편집 할 때처럼). – j0k
고마워요! 미안, 내 실수! 그러나 나는 모델의 이름이 그의 선고문에서 동일해야한다는 것이 필수적이라고 쓰고 있다고 생각한다. 그럼 난 더 많은 참조를위한 링크를 넣어 – Guido