Cakephp:如何使用Twig获取数据库表名列表
我正在使用Twig为cakePHP项目创建一个烘焙模板。我想要的就是使用twig访问数据库的表名及其字段,以基于这些表和字段生成代码 我可以轻松地使用访问表名(但这不是我想要的) 我想写这样的东西Cakephp:如何使用Twig获取数据库表名列表,php,twig,cakephp-3.0,Php,Twig,Cakephp 3.0,我正在使用Twig为cakePHP项目创建一个烘焙模板。我想要的就是使用twig访问数据库的表名及其字段,以基于这些表和字段生成代码 我可以轻松地使用访问表名(但这不是我想要的) 我想写这样的东西 {% set db = ConnectionManager.get('default') %} {% set collection = db.getSchemaCollection() %} {% set listTables = collection.listTables() %} 不能直接在tw
{% set db = ConnectionManager.get('default') %}
{% set collection = db.getSchemaCollection() %}
{% set listTables = collection.listTables() %}
不能直接在twig中使用PHP类或函数。而且,以这种方式使用它也不是最佳实践 最佳解决方案是:
实际上,我认为我可以直接在twig中使用PHP类或函数。例如,如果在CakePHP项目中打开默认烘焙模板(vendor/CakePHP/bake/src/template/bake/element/controller/any文件),您将发现可以直接在twig文件中使用一些CakePHP框架函数。我的问题的目的是构建一个用于bake命令的细枝模板。@KarimReda这是因为bake使用一个显式构建的用于CakePHP的模板,并提供细枝扩展,使访问助手和某些函数成为可能。无论是使用Twig还是Bake使用的Twig视图库,都不可能使用随机PHP。但是,您可以轻松地使用事件将变量注入烘焙视图:
{% set db = ConnectionManager.get('default') %}
{% set collection = db.getSchemaCollection() %}
{% set listTables = collection.listTables() %}