Как удалить одну запись с условием where в cakephp?

Я использую cakephp2. Как удалить одну запись с условием ?

У меня есть таблица с именем posts с полями id, title, post. первичный ключ-id. Я хочу удалить одну запись с id=5 ?

Как это возможно ?

то есть я жезлы для преобразования запроса,

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

как эта функция пишется на CakePHP modeln с именем Post ?

3 ответов


вы можете сделать это так. $this->Model->delete(5); или вы можете сначала назначить ID модели, а затем удалить ее. Такие как

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

Если вы хотите выполнить запрос delete (или любой другой) без модели, вы должны попробовать

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

использовать 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();

надеюсь, что это поможет кому-то.


delete(int $id = null, boolean $cascade = true);

удаляет запись, идентифицированную $id. По умолчанию также удаляет записи, зависящие от записи, указанной для удаления.

также вы можете применить функцию, как в контроллере, чтобы удалить одну запись

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

или если вам известен статический идентификатор

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

пожалуйста, дайте мне знать, если я могу помочь вам больше