在 Cakephp 中对临时表进行分页?

发布于 2024-10-12 10:26:58 字数 818 浏览 8 评论 0原文

假设我有一个名为“产品”的表和名为“产品”的模型。

'products' 表有 3 个字段 id、title、price、created

按 cal_price 排序

我想计算 cal_price (每个记录和搜索日期各不相同)并创建一个包含 4 个字段的临时表,即 id、title、price、cal_price,现在 ,我想要的只是对这个临时表进行分页。

使用 $this->paginate();

例如。

table_products

 id    title    price   created
 3      demo1    23     2011-12-12
 4      demo2    43     2011-12-13
 56     demo3    26     2011-12-16

sort 'temp_table' order by cal_price and paginate

temp_table

 id    title    price   cal_price created
 3      demo1    23        12       2011-12-12
 4      demo2    43        43       2011-12-13
 56     demo3    26        88       2011-12-16

*解决方案的根本问题是如何在运行时将 temp_table 分配给模型,因为一旦我这样做了,我就可以使用 $this->paginate('temp_model') 并解决问题*

Let say I have a table named 'products' and Model named 'Product'.

'products' table has 3 fields id,title,price,created

I want to calculate cal_price (which varies per record and day of search) and create a temporary table with 4 fields i.e. id,title,price,cal_price with order by cal_price

Now, all I want is to paginate this temporary table.

using $this->paginate();

eg.

table_products

 id    title    price   created
 3      demo1    23     2011-12-12
 4      demo2    43     2011-12-13
 56     demo3    26     2011-12-16

sort 'temp_table' order by cal_price and paginate

temp_table

 id    title    price   cal_price created
 3      demo1    23        12       2011-12-12
 4      demo2    43        43       2011-12-13
 56     demo3    26        88       2011-12-16

*The underlying problem to the solution is HOW DO I assign temp_table to a model at run time because once I do it I can use $this->paginate('temp_model') and solve the problem*

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

套路撩心 2024-10-19 10:26:58

如果您遵守 表名称的约定,因此“temp_table”不起作用,因为名称必须是复数。

假设您的临时表名为“temp_prices”(我没有在表上使用前缀)
,模型的名称应为“TempPrice”。要对表格进行分页,请在控制器上使用它祝你

$this->loadModel('TempPrice'); //will load the model on the controller
$this->paginate['TempPrice'] = array(); //you can change the pagination options here
$resp = $this->paginate('TempPrices');

好运

you dont need a model for your temporary table if you have respected the conventions for the tables' names, so "temp_table" wont work, cause the name must be plural.

Let's say that your temporary table is called "temp_prices" (i'm not using prefixes on tables)
,the name of the Model should be "TempPrice". To paginate the table use this on your controller

$this->loadModel('TempPrice'); //will load the model on the controller
$this->paginate['TempPrice'] = array(); //you can change the pagination options here
$resp = $this->paginate('TempPrices');

Good Luck

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文