데이터베이스에 필요한 테이블을 만들지 않는 InstallSchema.php가 있습니다. 스키마의 코드는 다음과 같습니다.
<?php
namespace MyVendor\Helpdesk\Setup;
use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
/**
* @codeCoverageIgnore
*/
class InstallSchema implements InstallSchemaInterface
{
public function install(SchemaSetupInterface $setup,
ModuleContextInterface $context)
{
$installer = $setup;
$installer->startSetup();
$table = $installer->getConnection()
->newTable($installer->getTable('myvendor_helpdesk_ticket'))
->addColumn(
'ticket_id',
\Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
null,
['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true],
'Ticket Id'
)
->addColumn(
'customer_id',
\Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
null,
['unsigned' => true],
'Customer Id'
)
->addColumn(
'title',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
null,
['nullable' => false],
'Title'
)
->addColumn(
'severity',
\Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
null,
['nullable' => false],
'Severity'
)
->addColumn(
'created_at',
\Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
null,
['nullable' => false],
'Created At'
)
->addColumn(
'status',
\Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
null,
['nullable' => false],
'Status'
)
->addIndex(
$installer->getIdxName('myvendor_helpdesk_ticket', ['customer_id']),
['customer_id']
)
->addForeignKey(
$installer->getFkName('myvendor_helpdesk_ticket', 'customer_id', 'customer_entity', 'entity_id'),
'customer_id',
$installer->getTable('customer_entity'),
'entity_id',
\Magento\Framework\DB\Ddl\Table::ACTION_SET_NULL
)
->setComment('myvendor Helpdesk Ticket');
$installer->getConnection()->createTable($table);
$installer->endSetup();
}
}
다음 명령을 실행했습니다.
php bin/magento setup:upgrade
php bin/magento setup:db-schema:upgrade
오류가 발생하지 않았지만 내 페이지에 도착하면 다음 오류가 발생합니다.
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'magento.myvendor_helpdesk_ticket' doesn't exist
도와주세요.
어디서나 'myvendor_helpdesk_ticket'을 정의 했습니까? 설치 프로그램-> getTable ()에서 실패했을 수 있습니다.
—
dbcn
u는 무엇을 의미합니까? 작은 예를 들어 주
—
시겠습니까
app / code / MyVendor / Helpdesk / Model / ResourceModel / Ticket.php를 수행하는 ResourceModel을 만들었습니다. $ this-> _ init ( 'myvendor_helpdesk_ticket', 'ticket_id'); 이 경우 다른 곳에서 내가 가지고있는 곳 'myvendor_helpdesk_ticket'문자열 내가 게시 한 코드에 ... 그것을 정의하고
—
Lachezar Raychev
"-> newTable ($ installer-> getTable ( 'myvendor_helpdesk_ticket'))" "을"-> newTable ( 'myvendor_helpdesk_ticket') "으로 대체했습니다 ... 여전히 아무것도 없습니다
—
Lachezar Raychev
다음을 사용하여 테이블
—
Marius
setup_module
에서 레코드를 삭제하십시오.module = 'MyVendor_Helpdesk'