草庐IT

mysql - CakePHP 查找 - 按字符串到整数排序?

我想使用CakePHP从数据库中提取一组照片,按照片标题排序(0、1、2、3...)我的查询目前看起来像这样:$ss_photos=$this->Asset->find('all',array('conditions'=>array('kind'=>'photo'),'order'=>'title'));不幸的是,标题似乎是字符串格式,导致排序顺序不理想(2.jpg在19.jpg之后,等等)。有没有一种快速的方法可以将“title”转换为int以便在此类Cake查询中进行排序? 最佳答案 不确定这是否是“推荐的做法”,但在第一次通过

php - CakePHP:在两个查询中完成的连接、belongsTo 和 hasMany 关系很少

我需要一些有关CakePHP2.2.3的帮助。我有什么我现在有以下设置:帖子有很多附件它工作正常,页面生成有2个查询:SELECT*,`Post`.`id`FROM`posts`AS`Post`WHERE1=1ORDERBY`Post`.`created`DESCSELECT`Attachment`.`id`,`Attachment`.`post_id`,`Attachment`.`created`FROM`attachments`AS`Attachment`WHERE`Attachment`.`post_id`IN(1,2,3,...,n)我想要什么我想将关系扩展如下:Posthas

mysql - 对使用存储过程的 CakePHP 应用程序进行单元测试

有人知道为使用MySQL存储过程的CakePHP2.3.1应用程序开发单元测试的正确方法吗?我查看了蛋糕网站,但有关测试的文档并不多。我也检查了SO和Google-似乎找不到问题/情况的提及。单元测试使用的是固定装置,而不是用于数据的真实数据库。非常感谢任何帮助/指点!J 最佳答案 重载Fixture的create()方法。不要忘记调用父级的create()并在创建过程语句中删除结束END之后的最终定界符。例如:publicfunctioncreate($db){parent::create($db);//createstoredp

php - 我们如何建立一个 laravel 多级关联

我有4张table。我想对一个表执行查询并从相关表中获取数据。在CakePHP中,我们使用contain但在Laravel中我不知道。国家/地区,指出,城市,地点模型代码classCountryextendsModel{publicfunctionstates(){return$this->hasMany('App\State');}}classStateextendsModel{publicfunctioncity(){return$this->hasMany('App\City');}}classCityextendsModel{publicfunctionlocation(){r

php - 具有重复事件的数据库的优化设计

我想创建一个php日历应用程序。如果我想创建正常、每周、每月和每年的事件,该软件的最佳数据库设计是什么。 最佳答案 我会为事件的每次重复创建一个条目,直到某个地平线。但是,这意味着您将需要另一个表格,如果他们扫描超过您的范围日期,您可以使用它来预测日期。即,您需要一个事件表,其中包含重复事件(1月1日、1月8日、1月15日……到12月)的每次发生的一个记录,以及一个包含可用于播种future年份的每条记录的表(开始date:Jan1;repeat:7;through:2011)这样在2012年初(或者只要用户请求查看2012年以后的

mysql - Cakephp 从另一个 View 中检索 id

尝试创建一个表单和一个确认页面,要求确认用户是否想与用户建立关系。该表单只有一个字段,该字段采用id并将用户定向到确认页面。确认页面有两个按钮,确认和拒绝,当用户点击确认时,表单将被提交到数据库,如果用户点击拒绝,表单中的数据将被丢弃。确认页面还将打印他们尝试添加的用户的用户名。我似乎无法从添加页面(add_admin.ctp)检索ID。我如何从原始添加页面(add_admin.ctp)访问id以在确认页面(confirm.ctp)中使用它?publicfunctionadd_admin(){$this->set('title_for_layout','SendARelationshi

php - 在cakephp中获取下一条和上一条记录的id

我想显示第一条记录和上一条记录的链接。我使用以下代码,但它返回空。$neighbors=$this->names->find('neighbors',array('conditions'=>array('names.Id'=>12),'limit'=>1));这是我下面的工作代码,它返回当前记录的数据$this->set("names",$this->names->find('all',array('conditions'=>array('names.Id'=>$id))));我怎样才能做到这一点。请帮我。谢谢 最佳答案 正如文档所

php - CakePHP 3.0 在哪里放置查询

我正在尝试使用新的CakePHP3.0,但在确定将查询放在何处时遇到了一些麻烦。假设我们有这样的东西,直接来自他们的文档。$articles=$this->Articles->find('all',['fields'=>['id','title'],'conditions'=>['OR'=>['title'=>'Cake','author_id'=>1],'published'=>true],'contain'=>['Authors'],'order'=>['title'=>'DESC'],'limit'=>10,]);我应该把这段代码放在哪里?在我的Controller类或模型文件夹

mysql - Cakephp 2.x 查找在同一字段上具有 DISTINCT 和 COUNT 的查询

User表结构。+------+-------+|id|data|+------+-------+|1|a|+------+-------+|1|b|+------+-------+|2|c|+------+-------+期望的结果。+------+-------+|id|count|+------+-------+|1|2|+------+-------+|2|1|+------+-------+我以多种方式尝试了DISTINCT和COUNT,但仍然没有得到想要的结果。我在做什么$this->User->find('all',array('conditions'=>array(),

php - 数据库表设计困境,复选框一大堆?

我想首先感谢你们,你们对我很好。我会直接进入问题。拥有一个超过400列的表,这很糟糕吗?我的Web表单主要由需要复选框回答的问题组成。复选框总数最多可达400个。我实际上对其中一个表单进行了建模,并将每个复选框放在一列中(花了我几个小时才完成)。由于我不熟悉数据库设计,所以我觉得那不是正确的方法。所以我在某处读到有人使用序列化函数将一组复选框作为文本存储在一列中。我只想知道存储这些复选框的最佳方式。还有更多信息,我将对这些表使用cakephporm。再次感谢。我的数据库看起来像这样表:患者,表:admitForm,表:SomeOtherFOrm每个表单表都会有一个PatientId正如