我试图解决这个问题。我已经为这个问题寻找了几个答案,我尝试了这个解决方案,但我没有成功。
这是我的控制器功能...
public function ProductCategoriesUpdate(Request $request, $category_id)
{
$cat=\DB::table('product_categories')
->where('category_id',$category_id)
->first();
$v = Validator::make($request->all(), [
'category_name' =>'unique:product_categories,category_name,'.$cat->category_id,
]
);
}
它'显示以下错误:
SQLSTATE [42S22]:未找到列:1054未知列' id'在'哪里 条款'
(SQL:选择count(*)作为聚合 来自product_categories category_name = Test和id<> 9)
我的表:
表名:product_categories
字段名称:category_id
,category_name
答案 0 :(得分:0)
您可以在模型类中使用以下内容
public static function validate($input, $scenario, $id = null){
switch($scenario)
{
case 'store':
$rules = [
'category_name' => 'required|unique:product_category
];
break;
case 'update':
$rules = [
'category_name' => 'required|unique:product_categories'.',category_name,' . $id
];
break;
}
在控制器中,您可以调用如下
//Insert
$validator = YourClass::validate($request->all(), 'store', '');
//Update
$validator = YourClass::validate($request->all(), 'update', $id);
答案 1 :(得分:0)
您应该查看表中的列,以查看列名中是否有任何错误,并检查是否有任何丢失的代码。
在您的where条件下,请尝试使用以下代码:
$cat=\DB::table('product_categories')
->where('category_id', '=', $category_id)
->first();