下单全过程3
收藏
加入购物车
<?php
namespace App\Http\Requests\Api\V1;
use App\Models\ProductSku;
class CartItemRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'sku_id' => [
'required',//必须要有skuid
function ($attribute,$value,$fail){
if (!$sku = ProductSku::find($value)){
return response()->json([
'code' => 422,
'error' => '该商品不存在'
]);
}
if (!$sku->product->on_sale){
return response()->json([
'code' => 422,
'error' => '该商品未上架'
]);
}
if ($sku->stock === 0){
return response()->json([
'code' => 422,
'error' => '该商品已售完'
]);
}
if ($this->input('amount') > 0 && $sku->stock < $this->input('amount')){
return response()->json([
'code' => 422,
'error' => '该商品库存不足'
]);
}
}
],
'amount' => ['required','integer','min:1']
];
}
public function attributes()
{
return [
'amount' => '商品数量'
];
}
public function messages()
{
return [
'sku_id.required' => '请选择商品'
];
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
laravel社区有系列教程,6.3. 订单的数据模型《L05 Laravel 教程 - 电商实战 ( Laravel 8.x) 》