我想通过 TwigBridge 在 Laravel 中使用 Twig-extensions 包中的 truncate 过滤器,但我一直看到这个错误:
The filter "truncate" does not exist in "[template file]" at line [##].
我尝试将扩展添加到 laravel/app/config/packages/rcrowe/twigbridge/config.php 扩展数组中有几种不同的方法,但都没有用。
'Twig_Extensions_Extension_Text',
和
function () {
return new Twig_Extensions_Extension_Text();
},
Composer 正确安装了文件,我能够使用相同的自动加载器从测试文件加载它。
需要哪些配置设置才能让 TwigBridge 加载此扩展?
最佳答案
好吧,我觉得有点笨,但让我们充分利用它。这是一个关于如何为 TwigBridge 启用额外的 Twig 扩展的非常明确的演练。在 Laravel 中。
TL;DR:扩展是在 extensions.php 中配置的,而不是 config.php。
Composer
从这里开始。要么使用 Composer 的 require CLI 命令; composer require twig/extensions 或将以下行添加到您的 composer.json 文件中。
"twig/extensions": "1.2.*@dev",
如果您修改 composer.json,请务必运行 composer update 以便安装包。
配置 TwigBridge
要将 Twig 扩展添加到 TwigBridge,必须将它们添加到 laravel/app/config/packages/rcrowe/twigbridge/extensions.php 中的 enabled 数组。不是 config.php。尽管 config.php 中可能有一个扩展数组,并且它是配置其他所有内容的地方,但它不是启用扩展的地方。这在 TwigBridge 的文档中有详细说明,但很容易被忽视。我设法错过了好几次。
'enabled' => [
'TwigBridge\Extension\Loader\Facades',
'TwigBridge\Extension\Loader\Filters',
// ...
'Twig_Extensions_Extension_Text', // <- add this
],
TwigBridge 的文档引用了一个config.php 文件,但配置文件似乎在不久前已重命名为twig.php。使用 artisan config:publish rcrowe/twigbridge 生成新配置产生了 twig.php 和 extensions.php 文件——没有 config。 php.我已经使用 TwigBridge 一段时间了,所以我还有一个在身边,可能会增加我的困惑。
扩展名称
每个扩展名都可以在扩展文件中找到——它们只是 Train_Case 类名。截至 2015 年 1 月,Twig-extensions project包含五个扩展,此处列出了它们及其包含的过滤器:
Twig_Extensions_Extension_Array随机播放Twig_Extensions_Extension_Datetime_diffTwig_Extensions_Extension_I18ntransTwig_Extensions_Extension_Intllocalizedate、localizednumber、localizedcurrencyTwig_Extensions_Extension_Texttruncate, wordwrap关于php - 在 Laravel 中通过 TwigBridge 加载 Twig 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28097072/
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co
我想这样组织C源代码:+/||___+ext||||___+native_extension||||___+lib||||||___(Sourcefilesarekeptinhere-maycontainsub-folders)||||___native_extension.c||___native_extension.h||___extconf.rb||___+lib||||___(Rubysourcecode)||___Rakefile我无法使此设置与mkmf一起正常工作。native_extension/lib中的文件(包含在native_extension.c中)将被完全忽略。
我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty
我有一个要在我的Rails3项目中使用的数组扩展方法。它应该住在哪里?我有一个应用程序/类,我最初把它放在(array_extensions.rb)中,在我的config/application.rb中我加载路径:config.autoload_paths+=%W(#{Rails.root}/应用程序/类)。但是,当我转到railsconsole时,未加载扩展。是否有一个预定义的位置可以放置我的Rails3扩展方法?或者,一种预先定义的方式来添加它们?我知道Rails有自己的数组扩展方法。我应该将我的添加到active_support/core_ext/array/conversion
我想编写一个ruby脚本来递归复制目录结构,但排除某些文件类型。因此,给定以下目录结构:folder1folder2file1.txtfile2.txtfile3.csfile4.htmlfolder2folder3file4.dll我想复制这个结构,但不包含.txt和.cs文件。因此,生成的目录结构应如下所示:folder1folder2file4.htmlfolder2folder3file4.dll 最佳答案 您可以使用查找模块。这是一个代码片段:require"find"ignored_extensions=[".cs"
这个问题有两个部分。在RubyProgrammingLanguage一书中,有一个使用模块扩展字符串对象和类的示例(第8.1.1节)。第一个问题。为什么如果您使用新方法扩展类,然后创建该类的对象/实例,则无法访问该方法?irb(main):001:0>moduleGreeter;defciao;"Ciao!";end;end=>nilirb(main):002:0>String.extend(Greeter)=>Stringirb(main):003:0>String.ciao=>"Ciao!"irb(main):004:0>x="foobar"=>"foobar"irb(main):
如何只加载map边界内的标记gmaps4rails?当然,在平移和/或缩放后加载新的。与此直接相关的是,如何获取map的当前边界和缩放级别? 最佳答案 我是这样做的,我只在用户完成平移或缩放后替换标记,如果您需要不同的行为,请使用不同的事件监听器:在你看来(index.html.erb):{"zoom"=>15,"auto_adjust"=>false,"detect_location"=>true,"center_on_user"=>true}},false,true)%>在View的底部添加:functiongmaps4rail