首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

搜索主键时,CakePhp2搜索表单从post切换到not post

在CakePHP2中,当我们需要在搜索表单中切换从POST请求到非POST请求时,可以通过以下步骤实现:

  1. 首先,在视图文件中创建一个搜索表单。可以使用CakePHP的FormHelper来生成表单元素。例如,可以在一个名为search.ctp的视图文件中添加以下代码:
代码语言:php
复制
<?php echo $this->Form->create('ModelName', array('type' => 'get')); ?>
<?php echo $this->Form->input('keyword', array('label' => 'Search')); ?>
<?php echo $this->Form->submit('Submit'); ?>
<?php echo $this->Form->end(); ?>

上述代码创建了一个名为ModelName的表单,使用GET请求提交数据。表单中包含一个名为keyword的输入框和一个提交按钮。

  1. 接下来,在控制器中处理表单提交的数据。可以在控制器的相应方法中获取表单数据,并根据需要执行搜索操作。例如,可以在控制器的index方法中添加以下代码:
代码语言:php
复制
public function index() {
    if ($this->request->is('get')) {
        $keyword = $this->request->query('keyword');
        // 执行搜索操作,根据关键字查询相关数据
        // ...
    }
}

上述代码首先检查请求是否为GET请求,如果是,则从请求参数中获取名为keyword的值。然后,可以使用该关键字执行相应的搜索操作。

  1. 最后,根据需要在视图中显示搜索结果。可以在控制器中将搜索结果传递给视图,并在视图中进行展示。例如,可以在控制器的index方法中添加以下代码:
代码语言:php
复制
public function index() {
    if ($this->request->is('get')) {
        $keyword = $this->request->query('keyword');
        // 执行搜索操作,根据关键字查询相关数据
        $results = $this->ModelName->find('all', array('conditions' => array('field LIKE' => "%$keyword%")));
        $this->set('results', $results);
    }
}

上述代码通过find方法执行搜索操作,并将结果存储在名为results的变量中。然后,可以在视图文件中使用该变量展示搜索结果。

这样,当用户在搜索表单中输入关键字并提交时,CakePHP2将使用GET请求获取关键字,并执行相应的搜索操作,最后将结果展示给用户。

CakePHP2相关链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Web 后端的一生之敌:分页器

以上文中提到的博客重复的问题为例,若 post 使用自增主键 id, 那么我们可以使用如下SQL 查询: select * from posts where id < ?...如下面的示例代码: // 对于时间戳相同的 post 我们并不关心谁前谁后,我们只要求排序稳定 // 若 post1.CreatedAt == post2.CreatedAt,查询第一页 post1...在前 post2 在后,查询第二页变成了 post2 在前 post1 在后,那么 post1 会出现两次,post2 会被漏掉 // 所以我们需要查询结果是稳定的,post1 始终在 post2 之前或者...快照 对于搜索引擎这种两次查询中相对顺序可能发生改变的场景,游标分页器也无能为力。...若无法避免分页则只能采取快照的方式,在搜索完毕后将整个搜索结果缓存下来,拉取后续内容不重新搜索而是拉取快照的剩余内容。

13510

MySQ--语句大全

有且只有一个主键,用来组织数据的依据 create table t2(id int)engine=myisam; -- 不支持事务,不支持外键,支持全文索引,处理速度快。...“%”而不用“*”,用“*”的时候只在开头或者只在结尾,而不能两端全由“*”代替任意字符的情况下。...post; # avg 平均值 # 每个部门的平均工资 select post,avg(salary) from emp group by post; # 每个部门的工资总和 # sum 求和...(name) from emp group by post; -- post:分组字段,name 需要分组后显示的字段 拼接: concat(不分组用)拼接字符串达到更好的显示效果 as...1 CREATE TABLE 新 SELECT * FROM 旧表 WHERE 1=2; 或 1 CREATE TABLE 新 LIKE 旧表 ; 注意上面两种方式,前一种方式是不会复制主键类型和自增方式是不会复制过去的

1.7K10

node.js+MySQL后端开发--(烂尾了 闲了再更)

uroot -p 官网下载安装包的话指路 => https://dev.mysql.com/downloads/mysql/ 点击红框哪里选择对应的版本,下载好了以后无情下一步即可 (有问题直接百度搜索...SHOW COLUMNS FROM 数据: 显示数据的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。...SHOW INDEX FROM 数据;: 显示数据的详细索引信息,包括PRIMARY KEY(主键)。...DROP TABLE 名 - 删除 CREATE INDEX - 创建索引(搜索键) DROP INDEX - 删除索引 查询和更新指令构成了 SQL 的 DML 部分: INSERT INTO...## 接口编写 响应模块化开发,在编写后端接口也应该分模块 . ├── app.js ├── bin │   └── www ├── common │   └── constant.js ├── config

84710

MySQL索引的分类、何时使用、何时不使用、何时失效?

(1)普通索引: create index index_name on table(column); 或者创建指定,create table(..., index index_name column...); (2)唯一索引: 类似普通索引,索引列的值必须唯一(可以为空,这点和主键索引不同) create unique index index_name on table(column);或者创建指定...unique index_name column (3)主键索引: 特殊的唯一索引,不允许为空,只能有一个,一般是在建指定primary key(column) (4)组合索引: 在多个字段上创建索引...; text,image等类型不应该建立索引,这些列的数据量大(假如text前10个字符唯一,也可以对text前10个字符建立索引); MySQL能估计出全扫描比使用索引更快,不使用索引; 4、索引何时失效...: 单条记录,系统会把匹配行中的其他列作为常数处理,如主键或唯一索引查询 null: MySQL不访问任何或索引,直接返回结果 还有key字段表示用到的索引,没有用到为null。

83250

【经验分享】RESTFul实践以及数据库字段兼容设计与字段预留

RESTFul与API设计 RESTFul是一种架构设计风格,它有多个实现层级,最常用的领域在于前后端交互的API设计。...RESTFul将请求抽象为资源操作,比如我们百度搜索“学习”,其实是在向百度服务器中的 “学习”【资源的查询】操作。...数据库字段兼容设计与字段预留 主键ID:如果没有自增逻辑,使用varchar(方便分布式) 时间:使用时间戳 long 价格:使用decimal,保留两位小数。...不要使用Double ,float ;java里面BigDecimal 状态、布尔值、性别等:用0、1、2、3…表示的值,如果没有构建字典,不要使用数字,直接用真值。类型用char。...类型:使用char,不考虑动态扩展类型不要增加type,在服务端使用枚举。

78320

Magicodes.WeiChat——ASP.NET Scaffolding生成增删改查、分页、搜索、删除确认、批量操作、批量删除等业务代码

目前已经实现了创建、删除、查看、编辑、分页、搜索、删除确认、批量操作、批量删除、支持日期控件、支持多个主键等情形的代码生成。 我们先来看看效果图: 效果图 ? ? ? ? ? ?...其中,我们需要重点关注以下两个目录: MvcControllerWithContext:该目录下的模板为添加控制器,选择基架项为【包含视图的 MVC5 控制器(使用Entity Framework)】...生成控制器代码的T4模板。...MvcView:该目录下的模板为添加控制器,选择基架项为【包含视图的 MVC5 控制器(使用Entity Framework)】生成增删改查视图的代码的T4模板。 然后,我们就开始生成之旅。...,不过搜索逻辑目前只是简单的搜索逻辑,开发者可以根据自己的需求修改为自己的搜索逻辑。

89920

Go 进阶训练营 – 评论系统架构设计三:存储设计

id:mysql必须有主键,不建立主键mysql也会提供一个rowId 使用自增,为了顺序存储,提高读写性能。 索引搜索快还是主键搜索快?...索引搜索是根据索引字段找到主键,再通过主键去找到记录,也就是二级索引。 用递增int不会带来安全性问题吗? 会的,可通过API加密解决 InnoDB默认是行级别的锁,当有明确指定的主键时候,是行级锁。...有必要的 mysql io以页为单位,一页16k,把大字段拆开后,索引读取性能高很多 索引会涉及排序操作 大字段后期太大了后,可以放到KV数据库里 这种套路以前和阿里大佬交流也提到过。...数据读取 新增评论,通过事务,对subject和index的count进行+1,需要先读取,再更新,i++问题。此时会有并发问题,导致count不对。...参考 MySQL for update使用详解 Select for update使用详解 Post Views: 4

88110

MYISAM和InnoDB比较。

1.InnoDB中不保存的具体行数,而MYISAM对是单独存起来的。也就是说select count(*) from table ,MYISAM会比InnoDB快的多。     我做过比较。...InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。...因此,主键不应该过大,因为主键太大,其他索引也都会很大。而MyISAM是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。 3....http://www.slidyy.com/post-26.html 分词、查询、存储、日志强大对搜索引擎。 5.InnoDB支持数据行锁定,MyISAM不支持行锁定,只支持锁定整个。...是建需要考虑的。实际情况复杂多样,常常面临抉择与牺牲。这时候就要根据对业务方向对判断来建了,但后期维护,也经常会遇到修改结构但情况。

2.9K20

数据库进阶3 Mysql 性能优化20个原则(1)

当我们去设计数据库结构,对操作数据库(尤其是查表的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。...这可以帮你分析你的查询语句或是结构的性能瓶颈。 EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据是如何被搜索和排序的……等等,等等。...当只要一行数据使用 LIMIT 1 当你查询的有些时候,你已经知道结果只会有一条结果,但因为你可能需要去fetch游标,或是你也许会去检查返回的记录数。...如果在你的中,有某个字段你总要会经常用来做搜索,那么,请为其建立索引吧。 4. 为搜索字段建索引 ?...例如,当你需要在一篇大的文章中搜索一个词,如: “WHERE post_content LIKE ‘%apple%’”,索引可能是没有意义的。

40010

通过 Laravel Eloquent 模型实现简单增删改查操作

一个 Eloquent 模型类映射一张数据,通过模型类提供的方法,你可以获取其映射的数据的所有记录,也可以获取单条记录,还可以创建、更新和删除对应数据表记录,而这一都不需要你编写任何 SQL 语句...你可能对「约定优于配置」这个理念不太了解,看几个例子就明白了,比如模型类映射的名、主键、关联关系、日期格式系统都约定好了,一般而言,遵循这个约定,你就可以不用做任何配置、编写任何额外代码即可完成功能,...当然,如果你不想遵循这个系统约定的规则,也可以通过手动设置模型类属性的方式进行自定义,例如: protected $table = 'articles'; 主键 Eloquent 默认假设每张数据都有一个整型的自增主键...,其字段名为 id,如果你的数据主键名不是 id,可以通过 $primaryKey 属性来指定: protected $primaryKey = 'post_id'; 如果主键不是自增的,还可以设置...如果你想要在单条记录返回结果为空返回 404 响应(在控制器方法中可能需要用到类似操作),可以通过 firstOrFail 或者 findOrFail 方法在找不到对应记录抛出 404 异常,从而简化代码编写

8K20

得物榜单|全链路生产迁移及BC端数据存储隔离

每2小定时调度,扫描圈品条件全量数据,从宽中筛选商品并进行排序,排序结果通过DTS数据同步回流榜单商品集合搜索离线圈品排序引擎:实验组榜单由商品圈品排序引擎生成,底层实现和搜索大致相同。...3.系统缺陷及解决思路 3.1 链路强耦合 商品/搜索存在双写榜单商品场景,由于搜索通过dts数据同步方式回流数据,导致数据相互覆盖甚至主键冲突,通过id隔离的方式可以暂时解决。...4.3.2 读/写流 读流:读流的核心是将B端数据源切换到捞月ES。这一步执行的节点十分关键,需放在链路改造完成,存储改造开始之前进行。...写流:搜索更新榜单商品开关关闭后,捞月选品结果全量写入榜单集合的风险较大,通过建立榜单集合临时,待临时数据验证通过后切换主表。...多想一步,如果在写流过程中切换写主表后出现未识别到的数据错误,如何快速止血? 在迁移的过程中我们暂时保留搜索更新榜单商品的能力作为数据修复预案,可在一小内完成数据修复。

62430

得物榜单|全链路生产迁移及BC端数据存储隔离

每2小定时调度,扫描圈品条件全量数据,从宽中筛选商品并进行排序,排序结果通过DTS数据同步回流榜单商品集合搜索离线圈品排序引擎:实验组榜单由商品圈品排序引擎生成,底层实现和搜索大致相同。...3.系统缺陷及解决思路 3.1 链路强耦合 商品/搜索存在双写榜单商品场景,由于搜索通过dts数据同步方式回流数据,导致数据相互覆盖甚至主键冲突,通过id隔离的方式可以暂时解决。...4.3.2 读/写流 读流:读流的核心是将B端数据源切换到捞月ES。这一步执行的节点十分关键,需放在链路改造完成,存储改造开始之前进行。...写流:搜索更新榜单商品开关关闭后,捞月选品结果全量写入榜单集合的风险较大,通过建立榜单集合临时,待临时数据验证通过后切换主表。...多想一步,如果在写流过程中切换写主表后出现未识别到的数据错误,如何快速止血? 在迁移的过程中我们暂时保留搜索更新榜单商品的能力作为数据修复预案,可在一小内完成数据修复。

72140

居然老师:想要做好MySQL优化,这十点内容是你必须要知道的!

这可以帮你分析你的查询语句或是结构的性能瓶颈。 EXPLAIN的查询结果还会告诉你你的索引主键被如何利用的,你的数据是如何被搜索和排序的......等等。...4.为搜索字段建立索引 索引并不一定就是给主键或是唯一的字段,如果在你的中,有某个字段你总要是经常用来做搜索,那么,请为其建立索引。 ? 从上图你可以看到俩条语句模糊查询的时间。...例如,当你需要在一篇大的文章中搜索一个词,如where post_content like '%apple%' ,索引可能是没有意义的,你可能需要使用MYSQL全文索引,或是自己做一个索引。...就算是你users有一个主键叫"email"的字段,你也别让它成为主键。使用varchar 类型来当主键会使得性能下降。另外,在你的程序中,你应该使用的ID来构造你的数据结构。...在这里,只有一个情况是例外,那就是"关联"的外键,也就是说,这个主键,通过若干个别的主键构成。我们把这个情况叫做"外键"。

86920

MySQL优化十大优化技巧

这可以帮你分析你的查询语句或是结构的性能瓶颈。 EXPLAIN的查询结果还会告诉你你的索引主键被如何利用的,你的数据是如何被搜索和排序的......等等。...3.当只要一行数据使用limit 1 当你查询的有些时候,你已经知道结果只会有一条结果,但因为你可能需要去fetche游标,或是你也许会去检查返回的记录书。...4.为搜索字段建立索引 索引并不一定就是给主键或是唯一的字段,如果在你的中,有某个字段你总要是经常用来做搜索,那么,请为其建立索引。 ? image.png 从上图你可以看到俩条语句模糊查询的时间。...例如,当你需要在一篇大的文章中搜索一个词,如where post_content like '%apple%' ,索引可能是没有意义的,你可能需要使用MYSQL全文索引,或是自己做一个索引。...在这里,只有一个情况是例外,那就是"关联"的外键,也就是说,这个主键,通过若干个别的主键构成。我们把这个情况叫做"外键"。

46720

ElasticSearch 基本操作

则相当于的行。...这里的文档可以类比为关系型数据库中的数据,添加的数据格式为 JSON 格式 在 Postman 中,向 ES 服务器发POST 请求 :http://127.0.0.1:9200/shopping/_...如果想要自定义唯一性标识,需要在创建指定:http://127.0.0.1:9200/shopping/_doc/1 服务器响应结果如下: 此处需要注意:如果增加数据明确数据主键,那么请求方式也可以为...PUT # 查看文档-GET 查看文档,需要指明文档的唯一性标识,类似于 MySQL 中数据的主键查询 在 Postman 中,向 ES 服务器发GET请求 :http://127.0.0.1:9200...true:字段会被索引,则可以用来进行搜索 false:字段不会被索引,不能用来搜索 store:是否将数据进行独立存储,默认为 false 原始的文本会存储在 _source 里面,默认情况下其他提取出来的字段都不是独立存储

63010

ELK专栏之ES快速入门-01

● 问题出现: ○ 存储问题:电商网站商品上亿条,涉及到单数据过大必须拆分,数据库磁盘占用多大必须分库。...○ 写入数据,过1秒才会被搜索到,因为内部在分词,录入索引。 ○ ES搜索搜索和分析数据需要秒级才能出结果。 ● Cluster:集群。 ○ 包含一个或多个启动ES实例的机器群。...● 对象存储到数据库,需要将关联的复杂对象属性插入到另一张,查询再拼接起来。 ● ES是面向文档,文档中存储的数据和对象一致。所以一个对象可以直接保存成一个文档。...类似中的主键。_id和_index结合起来可以标识和定义一个文档。...● 生成:手动(PUT /index/_doc/id)、自动 ---- 生成文档id 手动生成文档id ● 场景:数据从其他系统导入的时候,本身就有唯一主键。如数据库中的图书、员工信息等。

1.6K20

WordPress 判断文章更新,避免重复推送

这是因为百度收录之前,如果频繁向百度推送更新通知,文章很可能就会被百度丢入沙盒,短时间内不会在百度搜索展现该条收录!因此,网站在发布文章之后,稳定收录并展示之前,切忌频繁修改内容!...这个机制估计是百度出于用户体验考虑,百度希望用户看到的内容是和搜索到的一样,而不是百度收录了 A 内容,就因为你中途改成了 B 内容,导致用户通过 A 关键字搜索,却没有得到预期的结果!...= $xpost->post_status || '' !...方法②、当网站禁用了修订功能,可通过自定义栏目来终止插件推送: 我在测试上面的代码,发现根本不生效!看了半天,才发现我的博客曾经把修订功能给禁用了!...; define('AUTOSAVE_INTERVAL', 36000); 禁用修订功能是为了节省数据库主键,最大程度保证文章 ID 的连续性,估计这样设置过的博客也不在少数。

61530
领券