小编Fra*_*uke的帖子

在CakePHP查找函数中使用DISTINCT

我正在写一个CakePHP 1.2应用程序.我有一个人员列表,我希望用户能够在不同的字段上进行过滤.对于每个可过滤的字段,我有一个下拉列表.选择过滤器组合,单击过滤器,页面仅显示匹配的记录.

在people_controller中,我有一些代码:

$first_names = $this->Person->find('list', array(
    'fields'=>'first_name',
    'order'=>'Person.first_name ASC',
    'conditions'=> array('Person.status'=>'1')
));
$this->set('first_names', $first_names);
Run Code Online (Sandbox Code Playgroud)

(状态= 1,因为我使用的是软删除.)

这将创建所有first_names的有序列表.但重复是在那里.

在Cookbook中,我找到了一个使用DISTINCT关键字并修改我的代码来使用它的示例.

$first_names = $this->Person->find('list', array(
    'fields'=>'DISTINCT first_name',
    'order'=>'Person.first_name ASC',
    'conditions'=> array('Person.status'=>'1')
));
Run Code Online (Sandbox Code Playgroud)

这给了我一个像这样的SQL错误:

Query: SELECT `Person`.`id`, DISTINCT `Person`.` first_name` FROM `people` AS `Person`   WHERE `Person`.`status` = 1   ORDER BY `Person`.`first_name` ASC
Run Code Online (Sandbox Code Playgroud)

问题很明显.该框架将Person.id添加到查询中.我怀疑这来自使用'list'.

单击过滤器按钮时,我将使用选定的过滤器创建SQL语句.我不需要is字段,但无法摆脱它.

谢谢Frank Luke

cakephp distinct find cakephp-1.2

13
推荐指数
4
解决办法
4万
查看次数

如何判断我是否在编辑或创建之前保存?CakePHP的

我有一个模型,我需要在保存之前(或在某些情况下通过编辑)进行一些处理,但通常只是在编辑时.实际上,如果我对大多数编辑进行处理,结果字段将是错误的.现在,我正在使用模型的beforeSave回调.如何判断我是来自编辑还是添加?

弗兰克卢克

cakephp model edit callback save

11
推荐指数
2
解决办法
4852
查看次数

从连接表中删除ADODataSet

我有一个Delphi应用程序,我在其中显示从这样的查询中播放的游戏列表:

select  g.*, gt.id, gt.descr 
from GAMES g 
inner join game_types gt on gt.id = g.game_type
order by game_date DESC
Run Code Online (Sandbox Code Playgroud)

当我单击DBNavigator中的删除按钮时,也会删除game_types表中的联接记录.这是一个问题,因为许多其他游戏可能属于同一类型.

我需要做些什么才能只删除游戏但不删除游戏类型?

sql delphi ado delphi-2009 tadodataset

5
推荐指数
2
解决办法
2279
查看次数

jQuery验证 - 在运行时更改max的值

我有这些验证规则:

$("#ed_details").validate({
    rules: {
        tagno: { required: true },
        itemid: { required: true },
        ralno: { required: true },
        feet: { required: true, number: true, min: 0 },
        inches: { required: true, number: true, min: 0 },
        cms: { required: true, number: true, min: 0 },
        length: { required: true, number: true, max: $('#maxlength').val() },
        qty: { required: true }
    }
});
Run Code Online (Sandbox Code Playgroud)

这是长度验证的字段.它仅用于测试目的的文本.一旦这个工作,它将被隐藏.

<input type="text" name="maxlength" id="maxlength" value="<?=$maxL['ml']?>" />
Run Code Online (Sandbox Code Playgroud)

除非我在运行时更改maxlength的值(这可能发生),否则这样可以正常工作.用户正在从下拉列表中选择项目.每个项目都有一个可以与之一起使用的最大管道长度.当项目更改时,maxlength的值会在屏幕上更改.但是,当验证运行时,我会看到一条基于原始长度的错误消息(对于新项目为0,无论编辑时加载的maxlength是多少).

Please enter a value less than or equal to 156. …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-validate

5
推荐指数
1
解决办法
9264
查看次数

将Firebird数据库导出到sql

我在 Firebird 中有几个数据库,使用 IBExpert 作为 GUI 管理员。我正在改用MySQL。我可以使用 IBExpert 备份数据库(它为我提供完整的结构和数据),但 phpMyAdmin 无法读取 gbak 格式。PhpMyAdmin 有一个导出命令,可将活动数据库的数据和/或结构转储到 sql 文件。是否可以用 IBExpert 做类似的事情?

mysql firebird phpmyadmin ibexpert

3
推荐指数
1
解决办法
3万
查看次数

下拉菜单选择cakePHP

我正在使用CakePHP 1.2.我有一个人模型,有很多'文件'.当我编辑文档时,会出现所属人员的选择框(echo $form->input('person')其中person已在documents_controller中定义,如下所示:

$allPeople = $this->Document->Person->find('list', array('fields' => array('first_name')));
$this->set('people', $allPeople);
Run Code Online (Sandbox Code Playgroud)

当我编辑文档的记录时,我希望拥有该文档的人被选中并显示在框中.现在,应用程序只是创建列表框但没有突出显示正确的所有者(尽管数据库具有该人的ID).

谢谢Frank Luke

select cakephp associations cakephp-1.2 drop-down-menu

2
推荐指数
1
解决办法
4082
查看次数

添加到cakePHP应用程序的<body>标记

我有一个应用程序,我需要在两个表单的BODY标记的onLoad事件中调用一些JS.但是,我找不到如何修改标签.有人知道吗?

坦率

templates cakephp onload

2
推荐指数
2
解决办法
3194
查看次数

如果基表不存在,FORCED视图如何显着?

在Oracle 9i数据库的上下文中,通常对于要创建的视图是必需的,但是如果在创建视图时使用FORCED子句,则可能违反此约束.如果它们的基表不存在,这些视图的意义是什么?在哪些情况下这些观点会有所帮助?

oracle views

1
推荐指数
1
解决办法
7655
查看次数

HABTM数据未保存(cakephp)

我有两个与HABTM相关的模型(文档和人员).

class Person extends AppModel {
    var $name = 'Person';
    var $hasAndBelongsToMany = array(
        'Document' => array(
            'className' => 'Document',
            'joinTable' => 'documents_people',
            'foreignKey' => 'person_id',
            'associationForeignKey' => 'document_id',
            'unique' => false
       )
   );

class Document extends AppModel {
    var $name = 'Document';
    var $hasAndBelongsToMany = array(
        'Person'=>array(
            'className' => 'Person',
            'joinTable' => 'documents_people',
            'foreignKey' => 'document_id',
            'associationForeignKey' => 'person_id',
            'unique' => false
       )
   );
Run Code Online (Sandbox Code Playgroud)

我有一个文档的添加视图,其中填充了一个与文档相关的人员的复选框.

    echo $form->input('People', array('type'=>'select', 'multiple'=>'checkbox', 'options'=>$people, 'label' => 'People: '));
Run Code Online (Sandbox Code Playgroud)

这是控制器中应该进行保存的行.

$this->Document->create();
if ($this->Document->saveAll($this->data)) { …
Run Code Online (Sandbox Code Playgroud)

cakephp save has-and-belongs-to-many

1
推荐指数
1
解决办法
2226
查看次数

C#serializer跳过属性

我有一个类DocumentMetaData,我正在尝试序列化为XML.它是一个公共类,其中的所有元素都是公共的,但有一个元素不会出现在XML输出中,但应该是.(另一个用XmlIgnore标记.)我试图找出为什么跳过这个元素.

public class DocumentMetaData
{
  [XmlElement(ElementName="docType")]
  public string DocType { get; set; }

  [XmlElement(ElementName = "companyName")]
  public string CompanyName { get; set; }

  [XmlElement(ElementName = "countryName")]
  public string CountryName { get; set; }

  [XmlElement(ElementName = "clientName")]
  public string ClientName { get; set; }

  [XmlElement(ElementName = "manufacturer")]
  public string Manufacturer { get; set; }

  [XmlIgnore]
  public DateTime ConversionDate { get; set; }

  [XmlElement(ElementName = "conversionDate")]
  public string ConversionDateString
  {
     get { return ConversionDate.ToShortDateString(); }
  }
Run Code Online (Sandbox Code Playgroud)

}

生成的XML如下所示:

<docMeta>
    <docType>Text</docType>
    <companyName>Text</companyName>
    <countryName>Text</countryName> …
Run Code Online (Sandbox Code Playgroud)

c# xml xml-serialization

0
推荐指数
1
解决办法
145
查看次数