【发布时间】:2017-08-14 11:14:05
【问题描述】:
我有一张桌子tanks
+----+----------+-------+-------+
| id | capacity | model | width |
+----+----------+-------+-------+
| 1 | 1000 | 15 | 960 |
| 2 | 50000 | 30 | 200 |
| 3 | 100 | 15 | 12 |
| 4 | 80000 | 40 | 100 |
| 5 | 1000 | 30 | 123 |
| 6 | 500 | 5 | 1213 |
| 7 | 1000 | 22 | 2234 |
+----+----------+-------+-------+
我在表中添加了唯一属性
ALTER TABLE `tanks`
ADD UNIQUE `capacity_model_width` (`capacity`, `model`, `width`);
而我存储值的功能是这样的
public function store(Request $request) {
$image = new tank();
$this->validate($request, [
'capacity' => 'required|numeric',
'model' => 'required|numeric',
'width' => 'required|numeric',
]
);
$image->capacity = $request->capacity;
$image->model = $request->model;
$image->width = $request->width;
$image->save();
return redirect()->route('tank.index')
->with('success', 'Tank created successfully');
}
现在当我在下面插入错误显示时
Integrity constraint violation: 1062 Duplicate entry
'1000-22-2234' for key 'capacity_model_width'
如果它们是唯一的,我需要在我的提交中显示错误消息。我是 Laravel 新手,如何在 store 函数中添加自定义验证和错误消息
【问题讨论】:
-
那么你是在连接模型宽度和钥匙的容量吗?
-
有一个验证规则unique。
-
@ChrisTownsend no concatenation for them
-
@AhmadRezk 我知道,但它不适用于两个或多个领域,它对我不起作用
-
那么你的钥匙是怎么变成'1000-22-2234'的?