Php 在yaml中添加新表时CRUDlex不工作
我试图找到一种使用symfony组件为现有数据库、CRUD和composer生成UI的更快方法 找到了。正在使用composer进行安装,还包括安装程序 它工作正常,直到我在示例中添加新的表定义为止 无论yml中添加了什么表,当访问时总是抛出类似于此的错误 完整的错误消息请检查下面的屏幕截图 crudlex总是问“id”和“deleted_at” 代码与CRUDled示例相同 和文件夹结构Php 在yaml中添加新表时CRUDlex不工作,php,symfony,crud,silex,Php,Symfony,Crud,Silex,我试图找到一种使用symfony组件为现有数据库、CRUD和composer生成UI的更快方法 找到了。正在使用composer进行安装,还包括安装程序 它工作正常,直到我在示例中添加新的表定义为止 无论yml中添加了什么表,当访问时总是抛出类似于此的错误 完整的错误消息请检查下面的屏幕截图 crudlex总是问“id”和“deleted_at” 代码与CRUDled示例相同 和文件夹结构 vendor web > .htaccess > index.php com
vendor
web
> .htaccess
> index.php
composer.json
crud.yml
注意:我对silex和symfony2组件完全陌生^_^
谢谢,任何建议都非常感谢您缺少(至少)一个必需的元字段:
- created_at(datetime,非null):记录创建时
- 更新时间(datetime,非空):上次编辑记录时
- 版本(int,非null):记录的版本随每次编辑而递增
- 删除时间(datetime):如果不为空:记录(软)删除时
CREATE TABLE `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
`deleted_at` datetime DEFAULT NULL,
`version` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
您的数据库与您的架构已过期。你需要以某种方式更新它(恐怕我是symfony而不是silex,所以我缺乏这方面的知识)。谢谢你,菲尔!啊,我明白了,可以禁用那个元字段吗?若所有的表都有metafieldsHi,那个么看起来会很奇怪,我担心禁用它们目前是不可能的。但是这个特性已经上市了:--从来没有这个特性的实际用例,因此它还没有实现。:)是的,它可能看起来很“奇怪”,但实际上我们一直都在使用它,因为这些数据以后会很有用,而且磁盘空间很便宜。:)但我同意您可能无法更改数据库的现有模式。
$loader = require __DIR__.'/../vendor/autoload.php';
//$loader->add('CRUDlex', __DIR__.'/../../CRUDlex/src');
$app = new Silex\Application();
$app['debug'] = true;
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'dbs.options' => array(
'default' => array(
'host' => '127.0.0.1',
'dbname' => 'dbname',
'user' => 'root',
'password' => '',
'charset' => 'utf8',
)
),
));
$app->register(new Silex\Provider\SessionServiceProvider());
$dataFactory = new CRUDlex\MySQLDataFactory($app['db']);
$app->register(new CRUDlex\ServiceProvider(), array(
'crud.file' => __DIR__ . '/../crud.yml',
'crud.datafactory' => $dataFactory
));
$app->register(new Silex\Provider\TwigServiceProvider());
//$app['crud.layout'] = 'layout.twig';
$app->mount('/', new CRUDlex\ControllerProvider());
$app->match('/', function() use ($app) {
return $app->redirect($app['url_generator']->generate('crudList', array('entity' => 'library')));
})->bind('homepage');
$app->run();
vendor
web
> .htaccess
> index.php
composer.json
crud.yml
CREATE TABLE `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
`deleted_at` datetime DEFAULT NULL,
`version` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;