簡體   English   中英

phalcon MVC model 如何刪除數據?

[英]phalcon MVC model how can delete data?

delAction

我在 .net 上搜索了很長時間,但沒有成功。 請幫助或嘗試提供一些想法如何實現這一目標。

我想刪除一些數據,例如:

$articleIds = '1,2,3,5,8';
$User    = new User();
$success = $User->delete($articleIds);  

但是,這會出錯。 我應該怎么辦?

提前致謝。

嘗試以下任何一種刪除多條記錄的方法,並選擇您最喜歡的方法:

A) 查找然后刪除:

$ids = '1,2,3';
$records = User::find(sprintf("id IN (%s)", $ids)); // or you can avoid using sprintf and simply use concatenating operator like "IN (" . $ids . ")"
$records->delete(); // this should return boolean

B) 您還可以鏈接上述方法調用:

User::find(sprintf("id IN (%s)", $ids))->delete();

C) 或者您可以迭代每條記錄然后刪除它,如 Phalcon 文檔中所示: https : //docs.phalconphp.com/en/3.2/db-models#delete-records

D) 或者最后,您可以使用 Phalcon PHQL 編寫“原始”SQL 語句:

$config = [
    'host' => '127.0.0.1',
    'username' => 'user',
    'password' => 'pass',
    'dbname' => 'test'
];
$connection = new \Phalcon\Db\Adapter\Pdo\Mysql($config);
$sql = sprintf("DELETE `users` WHERE `id` IN (%s)", $ids);
$success = $connection->execute($sql);

更多信息: https : //docs.phalconphp.com/en/3.2/db-layer#crud


請記住...從用戶輸入中接受記錄 ID 時要非常小心(例如:通過 GET,或從允許用戶選擇記錄的表單/表格)。 但我認為這是另一個問題的話題。

首先清理您的輸入並確保只有int變量被接受到您的 id 數組中。 之后使用以下代碼並刪除所有記錄。

$ids = [1, 2, 3];
$records = User::find([
    'conditions' => 'id IN (:ids:)',
    'bind' => array('ids' => implode(', ', $ids)),
]);
$records->delete();
$models = VoucherThemeModel::find([
  'conditions' => 'voucher_theme_id IN ({ids:array})',
  'bind' => ['ids' => $voucher_ids]
]);

$models->delete();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM