【问题标题】:cakephp filter index pages according to foreign keyscakephp根据外键过滤索引页面
【发布时间】:2011-02-19 04:39:15
【问题描述】:

我对 CakePHP 很陌生,并且缺少一个不是作为脚手架生成的关键功能:过滤。

我必须做什么才能在索引页面上为作为(外)键的每个字段提供下拉列表或多选,从而允许过滤表(多选内的“OR”,之间的“AND”不同的多选,如果有的话)?

根据我的网络搜索显示,有更多的人试图完成同样的事情,尽管我找不到任何对我有用的东西,因为他们要么有文本字段并进行通配符过滤,要么他们提出了插件仅适用于 1.2,而我现在从 1.3 等开始。

有人可以减轻困惑并可能提供一些工作代码或指导我找到解决此问题的权威指南[tm]?

谢谢

【问题讨论】:

    标签: search cakephp filter


    【解决方案1】:

    我想你想要this one。过滤器的作者写道:

    过滤 hasOne 和 belongsTo 关系(我更喜欢从下拉列表中选择,但每个都有自己的)。

    【讨论】:

    • 我实际上尝试使用这个github.com/josegonzalez/cakephp-filter-plugin(它们似乎是相关的),但它以 $filter 结束,视图中未知。显然这些插件不适用于 cake 1.3
    • 1.您是否在控制器中包含了过滤器组件(var $components = array('Filter.Filter');)? 2、你用1.2测试过吗?
    • 我已经包含了,是的。至于第 2 点):jamesfairhurst.co.uk/posts/view/cakephp_filter_component 最后的评论说:这个组件和这个组件的所有分支在 cake 1.3 中都不起作用 - 看起来他们已经改变了 Controller 数据结构,所以 $controller->{$key}不匹配任何东西。我只是不知道该怎么做。
    • 这很清楚。 CakePHP 1.3 稳定版最近刚刚发布。我认为您现在不会找到更好的过滤解决方案。因此,要么等待该组件的修复,要么自己进行修复,或者要求作者提供修复或寻找其他解决方案。 :)
    • 我刚刚将我的应用程序升级到 cakephp 1.3。我在其中使用了这个过滤器 - uplevel.home.pl/cakephp/components/filter.txt。到目前为止没有发现任何问题。我不使用下拉列表进行过滤,而是使用输入字段。
    【解决方案2】:

    在我看来,as-is 提供了脚手架。如果您找到任何帮助完成此任务的人,我敢肯定,很多人都会感兴趣。但是脚手架并不是真的要满足这种“复杂”的要求,它只是列出了模型中的行。 虽然编写你想要的东西应该不难:使用控制台中的 cake 它可以为你生成脚手架所做的所有代码,你只需要添加你的过滤器。

    【讨论】:

    • 嗯,是的,我只生成了代码,没有它就不可能使用现有的解决方案[tm]。不幸的是,他们似乎都没有完全按照我的要求去做,这让我感到困惑。也许提供指向插件/教程/正确执行此操作的任何内容的链接是实际问题。
    • 你不能只生成代码,在生成的视图中添加一个选择框,然后返回到表单,创建一个过滤器吗?一旦您忘记这是超级复杂并且需要为其打包的现有解决方案的想法,这似乎非常简单。
    • 理想情况下,我希望它在每个索引页面和实际代表外键的每一列上自动生成这些选择框。
    • @Marki:我知道你想自动拥有它,只是不要忘记,没有免费的午餐。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    相关资源
    最近更新 更多