在我的产品表中product_name
是唯一的。如果我在更新数据时未更新产品名称,则不会让我更新产品信息并显示以下错误:
产品名称已经采取
如何在更新同一产品时忽略唯一名称?
这是我用于更新的代码:
public function update(Request $request, $id)
{
$product = Product::find($id);
$this->validate($request, [
'product_name'=> 'unique:products,product_name,'.$product->id ,
]);
$product->product_name = Input::get('product_name');
$product->product_unit_price = Input::get('product_unit_price');
$product->save();
return Redirect::to('products');
}
答案 0 :(得分:2)
如果您只使用unique
验证规则,则可以使用:
$this->validate($request, [
'product_name' => Rule::unique('products')->ignore($product->id),
]);
或者,如果您还有其他验证规则,请使用以下方式:
$this->validate($request, [
'product_name' => [
'required',
Rule::unique('products')->ignore($product->id),
],
]);
但在使用之前请加use Illuminate\Validation\Rule;
。
答案 1 :(得分:0)
确保您使用使用Illuminate \ Http \ Request ...并使用正确的表字段名称和输入名称。
$property = 201609;
var_dump($query[0]->$property);