基本上,CakePHP 是一個用於執行刪除的框架,用於從 $id 標識的資料庫中刪除記錄。通常刪除命令依賴記錄,這意味著我們可以說使用者的關係是一對多的,或者我們可以擁有歸屬關係。我們知道PHP是一種腳本伺服器端語言,用於在不同網頁之間進行動態互動。換句話說,我們可以根據自己的需求,借助CakePHP框架來刪除MySQL資料庫中的記錄,而且實作起來很簡單。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
要刪除資料集中的記錄,我們首先需要利用TableRegistry類別來取得一個表。我們可以使用 get() 方法從庫中取出該事件。 get() 技術將資料集表的名稱作為爭用。目前,這個新範例用於取得我們需要刪除的特定記錄。
使用這個新事件呼叫 get() 策略,並傳遞必要的鍵來觀察將保存在另一個案例中的記錄。利用TableRegistry類別的範例呼叫刪除技術從資訊庫中刪除記錄。
將套用刪除規則。假設標準達不到要求,刪除將會被阻止。
刪除事件之前的 Model.before 已關閉。假設此事件被停止,刪除將被縮短並傳回事件的結果。
該元素將會被刪除。
所有依賴關係都將被刪除。如果關係被刪除,則會傳送額外的事件。
任何屬於多個從屬關係的交集表記錄都會被刪除。
模型。刪除後場合將會被關閉。
現在讓我們看看如何在 CakePHP 框架中執行刪除操作,如下所示。
要刪除資料庫中的記錄,我們首先需要利用TableRegistry的功能保留一個工作區。我們可以使用 get() 方法從庫中取得該事件。 get() 方法將接受資訊庫工作區的呼叫作為問題。目前,這個新機會用於獲取我們需要刪除的有趣檔案。
使用這個新模型呼叫 get() 過程,並繞過主鍵來查看報告,以便保存在每個其他範例中。利用TableRegistry的趣味指南呼叫delete方法來處理從資料集中刪除記錄。
刪除元素的同時,相關資訊也會被刪除。如果您的 HasOne 和多個附屬機構被設計為依賴項,則刪除任務也將「轉向」這些物質。當然,使用 CakeORMTable::deleteAll() 可以刪除相關表中的元素。您可以選擇擁有 ORM 載入相關元素,並透過將cascadeCallbacks選項設為有效來獨立刪除它們。具有這兩種選擇的 HasMany 關係示例如下:
現在讓我們看看文法如下。
delete(integer $specified id of table= null, required boolean value$cascade = true);
說明
使用上面的語法我們可以在CakePHP中實作刪除,這裡我們使用不同參數的刪除指令如下。
表的指定Id是該表的唯一標識符,它是一個整數,最初為空,根據我們的要求我們可以更改Id的值。
在此語法中,我們也使用布林值來設定刪除操作的級聯實現,如上面的語法所示。
CakePHP批次刪除
現在讓我們看看如何在 CakePHP 中執行批次刪除,如下所示。
有時單獨擦除線條可能沒有效果或沒有幫助。在這些情況下,使用整體擦除來消除許多行而不會有片刻延遲會更有效。如果至少 1 行被擦除,則認為整體擦除是有效的。容量以整數形式傳回已刪除記錄的數量。
現在讓我們看看批次刪除的語法如下。
function deletespam() { return $this->deleteAll(['Specified statement that is spam' => true]); }
說明
在上面的語法中,我們宣告了一個函數,並在函數內部呼叫了deleteAll方法,如圖所示。在這個語法中,我們需要設定我們想要的指定語句的布林值,這取決於使用者的需求。
現在讓我們看看刪除操作的不同範例,以便更好地理解,如下。
首先,我們需要建立一個新表,並將一些記錄放入表中,如下所示。
CREATE TABLE IF NOT EXISTS `sampledemo` ( `id` char(30) NOT NULL, `EmpName` varchar(250) DEFAULT NULL, `EmpPass` varchar(40) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
現在在新建立的表中插入記錄,如下所示。
INSERT INTO `sampledemo` (`id`, `EmpName`, `EmpPass`) VALUES ('3', 'Siya','$2y$10$HKLH3YiZE'), ('4', 'Rohan','$2y$10$bZcoCTW'), ('5', 'Tanya','$2y$10$SnGQV8O');
Explanation
After Execution of the above query, we will get the following result as shown in the following screenshot as follows.
Now we need to make the changes in route.php as shown below.
<?php use Cake\Http\Middleware\CsrfProtectionMiddleware; use Cake\Routing\Route\DashedRoute; use Cake\Routing\RouteBuilder; $routes->setRouteClass(DashedRoute::class); $routes->scope('/', function (RouteBuilder $builder) { $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([ 'httpOnly' => true, ])); $builder->applyMiddleware('csrf'); $builder->connect('/users/delete', ['controller' => 'sam, 'action' => 'delete']); $builder->fallbacks(); }); Now we need to create a usercontroller.php file and write the following code as follows. ?php namespace App\Controller; use App\Controller\AppController; use Cake\ORM\TableRegistry; use Cake\Datasource\ConnectionManager; class UsersController extends AppController{ public function sequence (){ $users = TableRegistry::get('users'); $query = $users->find(); $this->set('output',$query); } public function delete($id){ $users_table = TableRegistry::get('users'); $users = $users_table->get($id); $users_table->delete($users); echo "deleted successfully."; $this->setAction('sequence'); } } ?>
Now we need to create a directory for the user and that file we call a ctp file either sequence or index as per our requirement we can change the name of the file and write the following code as follows.
<a href="add"> User</a> <table> <tr> <td>Id</td> <td>EmpNamee</td> <td>EmpPass</td> <td>Edit</td> <td>Delete</td> </tr> <?php foreach ($Output as $row): echo "<tr><td>".$row->id."</td>"; echo "<td>".$row->Empname."</td>"; echo "<td>".$rows->EmpPass."</td>"; echo "<td><a href='".$this->Url->build(["controller" => "Users","action" => "edit",$row->id])."'>Edit</a></td>"; echo "<td><a href='".$this->Url->build(["controller" => "Users","action" => "delete",$row->id])."'>Delete</a></td></tr>"; endforeach; ?> </table>
Now run the script in localhost and see the output, here is the end result of the above implementation we illustrated by using a screenshot as follows.
Now suppose we need to delete the 3 number records, so we need to provide the id of that row and the after delete operation result as shown in the following screenshot.
Similarly, we can delete the 4th number row and we can see the result in the following screenshot as follows.
We hope from this article you learn more about the CakePHP delete. From the above article, we have taken in the essential idea of the CakePHP delete and we also see the representation and example of the CakePHP delete. From this article, we learned how and when we use the CakePHP delete.
以上是CakePHP 刪除的詳細內容。更多資訊請關注PHP中文網其他相關文章!