TYPO3 - 如何正确定义常量,将其存储到变量中并在流体模板内部使用(TYPO3 - how to properly define constant, store it into variable and use inside of fluid template)
在我正在开发的插件的Fluid模板中,有些东西是硬编码的。 例如:
<f:else> <li> <v:page.link pageUid="114" /> </li> </f:else>
由于在测试和生产服务器上pageUid值不同,我想使其更具动态性。
我想以某种方式将其存储在变量中,然后在流体模板中使用该变量。
我只是不知道做这个和TYPO3中的热点。
提前致谢!
In the Fluid template of plugin I am working on, some things are hardcoded. For instance:
<f:else> <li> <v:page.link pageUid="114" /> </li> </f:else>
Since pageUid values are not same on test and production server I would like to make this more dynamic.
I would like to store this somehow in variable and then use the variable in the fluid template.
I just dont know hot to make this and where in TYPO3.
Thanks in advance!
原文:https://stackoverflow.com/questions/41955828
最满意答案
从命名类/属性的方式来看,很难猜出哪一个是单个对象,哪一个是集合属性。
如果
ORDERS
类属性ORDER_DETAILS
是ORDER_DETAILS
类的集合,并且ORDER_DETAILS
类属性PRODUCTS
是具有字符串属性HEADINGS
的PRODUCTS
类的单个对象,则以下应该执行以下操作:.Where("ORDER_DETAILS.Any(PRODUCTS.HEADING.ToLower().Contains(\"foo\"))")
它与跳过lambda参数的静态查询基本相同
.Where(o => o.ORDER_DETAILS.Any(d => d.PRODUCTS.HEADING.ToLower().Contains("foo")))
From the way you named your classes/properties it's hard to guess which one is a single object and which one is a collection property.
If
ORDERS
class propertyORDER_DETAILS
is a collection ofORDER_DETAILS
class, andORDER_DETAILS
class propertyPRODUCTS
is a singe object ofPRODUCTS
class having a string propertyHEADINGS
, then the following should do the trick:.Where("ORDER_DETAILS.Any(PRODUCTS.HEADING.ToLower().Contains(\"foo\"))")
It's basically the same as static query with lambda parameters skipped
.Where(o => o.ORDER_DETAILS.Any(d => d.PRODUCTS.HEADING.ToLower().Contains("foo")))
相关问答
更多-
将LINQ to SQL查询转换为NHibernate(子集合过滤器)(Translate LINQ to SQL query to NHibernate (child collection filter))[2024-02-07]
我现在无法测试它,但这应该工作: var result = Session.QueryOver() .JoinQueryOver(x => x.WorkTimes) .Where(wt=> wt.DateTime >= new DateTime(2012, 3, 1)) .List(); 它应该根据子集合的属性过滤父实体(Employee)(因为它是内连接)。 但是,我还没有测试过它。 I think I manage to find the answer (w ... -
LINQ - 筛选子集合(LINQ - filter child collection)[2022-02-17]
尝试以下操作: var filtered = orders .Where(o => o.Detail.Any(d => d.StockCode == "STK2")) .Select(o => new { Order = o, Details = o.Detail.Where(d => d.StockCode == "STK2") }); 然后可以这样使用: foreach (var entity in filtered) { Console.WriteLine("Account ... -
除非您限制默认加载的子项(使用您链接到的方法),否则您必须在一个查询中加载Parent,而在另一个查询中加载子项。 AFAIK无法查询对象并且只加载了某些子项。 您可以随时使用MultiQuery提交它们。 HQL之类的东西(这可能会略微缺少标记): select mt from MarketGroup mg inner join mg.M ...
-
LINQ to Entities - 使用过滤器对子集合进行排序(LINQ to Entities - sorting on child collection with filter)[2023-11-28]
Enumerable.OrderBy(x => x.Tags.Where(x => x.TagType == aTagType).First().Value); Thanks to @James for the suggestion but that didn't work. The solution is to use Min and Max for the field of the child collection to be ordered by: if (sortDescending) { ... -
所以我最终得到它的工作得益于设拉子给出的指针。 DataLoadOptions options = new DataLoadOptions(); options.AssociateWith
(item => item.VerseTranslation.Where(t => languageId.Contains(t.LanguageId))); dc.LoadOptions = options; var res = from s ... -
从命名类/属性的方式来看,很难猜出哪一个是单个对象,哪一个是集合属性。 如果ORDERS类属性ORDER_DETAILS是ORDER_DETAILS类的集合,并且ORDER_DETAILS类属性PRODUCTS是具有字符串属性HEADINGS的PRODUCTS类的单个对象,则以下应该执行以下操作: .Where("ORDER_DETAILS.Any(PRODUCTS.HEADING.ToLower().Contains(\"foo\"))") 它与跳过lambda参数的静态查询基本相同 .Where(o ...
-
var _tours = Context.Tours.Where(i => i.IsActive == true) .Include(cat => cat.TourCategories). .Where(x => x.TourCategories.Any(y => y.TourCategoryID == tourCategory) var _tours = Context.Tours.Where(i => i.IsActive == true) .Include(cat => cat.Tour ...
-
使用nhibernate按子集合中对象的值进行过滤(Using nhibernate to filter by the value of an object in a child collection)[2023-02-15]
这是一个可能的HQL: select f, d.Description from Fault f join fetch f.Alarm a join a.Descriptions d where d.Language = :lang 这将检索元组列表( object[2] ),其中第一个元素是Fault(具有初始化的Alarm),第二个元素是所选语言的描述文本。 Here's a possible HQL: select f, d.Description from Fault f join fetch f ... -
你几乎拥有它。 您需要反转嵌套谓词中的逻辑来执行您要搜索的集合,然后将lambda continuation变量公开给它。 我给了一些更复杂的例子说你有其他复杂对象的集合,你想要找到那些及其父母的属性: public class POC { public int Id { get; set; } public string Desc { get; set; } public List
Orders { get; set; } } public class Order { pu ... -
如何使用LINQ来过滤使用(.Any())的子集合的属性(How to use LINQ to filter property of child collection using (.Any()))[2022-06-22]
where语句返回一个集合。 你想使用Any()方法 var customers = from c in Customers where c.Orders.Any(o => o.Status = 1) select c the where statement returns a collection. you want to use the Any() method var customers = from c in Customers ...