我有个错误
SQLSTATE42S02:未找到基表或视图: 1146表'phpixie.persons‘不存在
当排队表‘people’时:
public function getPerson($person_id)
{
return $this->components()->orm()->query('person')
->where('id', $person_id)
->findOne();
}来自文档:
默认情况下,ORM假设表名是模型名称的复数,主键的名称是‘id’。
如何直接指定表名?
PS或指定规则列表(如EnglishPluralizationService )
{“儿童”、“儿童”}{“语料库”、“语料库”}{“人”、“人”}
发布于 2017-09-03 11:57:39
根据您使用的PHPixie版本,有不同的解决方案来指定模型的表名:
2.x
假设您已经有了一个Person模型,您可以使用$table字段指定表名:
class Person extends \PHPixie\ORM\Model
{
public $table = 'person';
}关于参考,见:
3.x
可以覆盖配置文件中的默认假设:
return array(
'models' => array(
'person' => array(
'table'=> 'persons',
),
);
);关于参考,见:
发布于 2017-09-03 12:58:43
Phpixie3:
<?php
// bundles/app/assets/config/orm.php
return [
'models' => [
'person' => [
'table' => 'people',
// if you want to change id field also:
'id' => 'pid',
],
],
];打电话给:
$builder->components()->orm()->query('person')->in(432)->findOne();应该变成
SELECT * FROM person WHERE id=432;或者,如果您也覆盖id字段:
SELECT * FROM person WHERE pid=432;https://stackoverflow.com/questions/46022927
复制相似问题