【问题标题】:How to delete a single record with where condition in cakephp?如何在cakephp中删除具有where条件的单个记录?
【发布时间】:2013-04-29 10:09:42
【问题描述】:

我正在使用 cakephp2。如何删除带条件的单条记录?

我有一个名为 posts 的表,其中包含字段 id、title、post。主键是 id。我想删除 id=5 的单条记录?

怎么可能?

也就是我想转换查询,

$this->query('delete * from posts where id = 5'); To cakephp ?

这个函数是如何写在名为 Post 的 cakephp 模型上的?

【问题讨论】:

  • 所以你想删除所有id为5的记录(应该是主键)??
  • 是的。 wands 删除 id=5 的字段
  • 我猜你想要的是删除 id=5 的“单个”记录。我下面的回答可能会对你有所帮助。
  • 我使用该代码但没有被删除。页面刚刚刷新
  • @VinodVT 根据您在此处提出的最后几个问题,您正在尝试不阅读手册来学习 CakePHP。几乎所有这些问题都是手册中的基本示例。我们真的很想帮助您学习 CakePHP,但不要指望我们会在手册中为您查找内容。尝试阅读CookBook,它还提供免费电子书,以便您可以在电子阅读器上离线阅读。

标签: cakephp cakephp-2.0


【解决方案1】:

你可以这样做。 $this->Model->delete(5); 或者您可以先将 id 分配给模型,然后将其删除。比如

$this->Model->id = 5;
$this->Model->delete();

如果您想在没有模型的情况下执行删除(或任何其他)查询,那么您应该尝试

$db = ConnectionManager::getDataSource('default');
$db->rawQuery("DELETE FROM table WHERE id=5");

【讨论】:

    【解决方案2】:

    使用deleteAll()

    $this->Model->deleteAll(array('Model.field_name'=>'field_value'));
    

    或按主键删除:

    1. $this->Model->delete(primary_key_value);
    
    2. $this->Model->id = primary_key_value;
       $this->Model->delete();
    

    希望对某人有所帮助。

    【讨论】:

      【解决方案3】:
      delete(int $id = null, boolean $cascade = true);
      

      删除由 $id 标识的记录。默认情况下,还会删除依赖于指定要删除的记录的记录。

      您也可以应用控制器中的功能来删除一条记录

      $this->Post->delete($this->request->data('Post.id'));
      

      或者如果你知道静态 ID

      $this->Post->delete(5);
      

      如果我能帮助你更多,请告诉我

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多