Trong một số phần của ứng dụng của tôi, tôi chỉ cần cập nhật trường is_active
của một số table
với nhiều trường. Cách tiếp cận tốt nhất để cập nhật chỉ trường này là gì và tránh các xác thực và yêu cầu của tất cả các trường khác?Chỉ cập nhật một trường trên Cakephp 3
Trả lời
Và nếu bạn muốn cập nhật hàng cụ thể, hãy sử dụng này:
$users= TableRegistry::get('Users');
$user = $users->get($id); // Return article with id = $id (primary_key of row which need to get updated)
$user->is_active = true;
// $user->email= [email protected]; // other fields if necessary
if($users->save($user)){
// saved
} else {
// something went wrong
}
Xem ở đây (Updating data in CakePHP3).
'if ($ user-> save ($ user))' dòng này sẽ thay thế bằng 'if ($ users-> save ($ user)) ' – Poonam
Ồ tôi hiểu rồi. Bạn đúng rồi. –
Bánh 3 có tính năng bẩn. Vì vậy, trừ khi bạn sửa đổi các trường khác, chúng sẽ không được cập nhật hoặc gửi trong truy vấn. Vì vậy, điều này giúp bạn không ghi đè các cột mật khẩu một cách tình cờ. Tuy nhiên, mật khẩu và các trường tương tự sẽ có thể truy cập được đặt thành false anyway. – styks
Sử dụng ví dụ tại đây: http://book.cakephp.org/3.0/en/orm/database-basics.html#running-update-statements. Chạy mã bên dưới để cập nhật tất cả các bản ghi trong bảng table_name_here
với một giá trị mới cho cột is_active
.
use Cake\Datasource\ConnectionManager;
$connection = ConnectionManager::get('default');
$connection->update('table_name_here', ['is_active' => 'new_value_here']);
này sẽ làm việc:
$users = TableRegistry::get('Users');
$query = $users->query();
$query->update()
->set(['is_active' => true])
->where(['id' => $id])
->execute();
http://book.cakephp.org/3.0/en/orm/query-builder.html#updating-data
Những câu trả lời khác không sử dụng quốc tế và các mô hình khác đạo cụ, callbacks vv Tôi nghĩ rằng điều này là do các nhà xây dựng truy vấn , nó không sử dụng các mô hình và do đó hành vi của chúng, do đó bạn nên sử dụng:
$this->loadModel('Inputs');
$input = $this->Inputs->find()->where(['`key`' => $this->request->data['id']])->first();
$this->Inputs->patchEntity($input, ['prop' => $this->request->data['prop']]);
if ($this->Inputs->save($input)) {
die(json_encode(true));
} else {
die(json_encode(false));
}
Khi bạn không muốn callbacks được kích hoạt, chỉ cần sử dụng updateAll()
$table->updateAll(['field' => $newValue], ['id' => $entityId]);
- 1. cakePHP - trường được sửa đổi không cập nhật
- 2. CakePHP 3 có các trường chọn
- 3. Android Firebase chỉ cập nhật một số trường
- 4. Trình kích hoạt Oracle Cập nhật một trường trên một Chèn hoặc Cập nhật
- 5. cập nhật RecyclerView chỉ trên cuộn
- 6. MongoDB: chỉ cập nhật các trường cụ thể
- 7. CakePHP: mô hình tự động tạo và cập nhật ngày
- 8. Chỉ cập nhật Thời gian trong trường DateTime mysql
- 9. Trường cập nhật khung Django
- 10. django django có một dấu thời gian tự động tạo/cập nhật lĩnh vực như cakephp?
- 11. CakePHP 3 bước đăng ký
- 12. Mongoose cập nhật chỉ cập nhật tài liệu đầu tiên
- 13. Cakephp 3 nhiều formhelpers mẫu tùy chỉnh
- 14. cakephp isUnique cho 2 trường?
- 15. Cách cập nhật loại trường trong elasticsearch
- 16. Mongoose findOneAndUpdate Cập nhật nhiều trường
- 17. Cập nhật MongoDB. Cố gắng đặt một trường từ thuộc tính của một trường khác
- 18. CakePHP 3 Truy vấn SQL thô
- 19. Umbraco CMS - Cập nhật nội dung trên một số môi trường
- 20. Trường Cập nhật Khi Không Null
- 21. ModelViewSet - Cập nhật trường lồng nhau
- 22. Tôi làm cách nào để không cho phép cập nhật ngoại trừ trên một trường?
- 23. cập nhật chỉ mục lucene
- 24. Oracle: sao chép hàng trong khi cập nhật một trường
- 25. CakePHP 3.0: Cách chèn một bản cập nhật khóa trùng lặp?
- 26. Nơi đặt một lớp PHP tùy chỉnh trong CakePHP 3?
- 27. Cập nhật MySql Script trên CodeIgniter
- 28. Cập nhật một mảng
- 29. Chỉ số Bulk Elasticsearch - Chỉ cập nhật nếu tồn tại
- 30. jQuery X-Editable: Cập nhật trường chọn dựa trên giá trị của trường chọn khác
Là một SQL liên quan câu hỏi hoặc PHP mã (CakePHP) câu hỏi? –
Tôi đang nói về cakephp 3 –
@YasenZhelev câu hỏi này là từ năm 2010. có lẽ cakephp 2 hoặc thậm chí 1 –