要在Yii框架中实现添加和删除产品数量的功能,并使用EasyUI作为前端展示
时间: 2024-10-03 22:03:53 浏览: 14
在Yii框架中实现添加和删除产品数量的功能通常涉及以下几个步骤:
1. **模型(Model)**:首先,你需要创建一个`Product`模型,它应该包含商品的数量属性。例如:
```php
namespace app\models;
class Product extends \yii\db\ActiveRecord {
public $quantity;
// ...其他字段和验证规则...
}
```
2. **视图(View)**:在前端,你可以使用EasyUI库来构建表格展示产品列表,包括数量操作列。例如,使用`data-editable`属性实现编辑功能:
```html
<table id="product-grid" title="产品列表">
<columns>
<column field="id" title="ID"></column>
<column field="name" title="名称"></column>
<!-- 添加数量列 -->
<column field="quantity" title="数量" editable="true" type="number"></column>
<!-- 删除按钮 -->
<column field="delete" title="" formatter="actions">
<action type="del" icon="icon-trash" onclick="return confirm('确定删除吗?')"/>
</column>
</columns>
</table>
```
3. **控制器(Controller)**:在控制器里处理增删请求。当用户点击添加或删除按钮时,会触发Ajax请求到相应的Action。例如:
```php
public function actionAddQuantity($id) {
$model = Product::findOne($id);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return Json::encode(['success' => true]);
} else {
return Json::encode(['success' => false, 'errors' => $model->getErrors()]);
}
}
public function actionDeleteQuantity($id) {
$model = Product::findOne($id);
if ($model->delete()) {
return Json::encode(['success' => true]);
} else {
return Json::encode(['success' => false]);
}
}
```
4. **AJAX**:前端通过JavaScript异步提交表单数据到对应的Controller Action,比如:
```javascript
$('#add-button').on('click', function(e) {
var id = $(this).closest('tr').data('id');
$.ajax({
url: '/product/addQuantity',
method: 'POST',
data: {id: id, quantity: $('#quantity-input').val()},
success: function(response) {
// 更新数据显示成功的信息
},
error: function() {
// 显示错误信息
}
});
});
$('#delete-button').on('click', function(e) {
e.preventDefault();
var id = $(this).closest('tr').data('id');
if (confirm('确定删除吗?')) {
$.ajax({
url: '/product/deleteQuantity',
data: {id: id},
success: function() {
// 更新数据显示删除成功的信息
},
error: function() {
// 显示错误信息
}
});
}
});
```