数据库状态[23000]:完整性约束冲突:1048列'category_slug'不能为空(SQL:更新products
设置category_slug
=?,products
,updated_at
= 2022年12月23日12:06:26,其中id
= 1)
如何从类别slug表中获取产品类别_slug列。
类别表:
|身份证|姓名|蛞蝓||四个|四类|第四类||五个|五类|五类||六个|六类|六类|
产品表
|身份证|姓名|类别标识|类别_块||1个|美国电信|四个|第四类||第二章|BTCH信道|五个|五类||三个|欧元|六个|六类|
- 产品控制器**(更新方法)
public function update(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required|string|max:190',
'price' => 'required',
'category_id' => 'required',
])->validate();
$code=Product::find($request->id);
$code->name=$request->name;
$code->category_id=$request->category_id;
$code->category_slug=$request->category_slug;
$code->update();
return redirect()->back()->with('success',__('Product has been updated'));
}
'
- 产品型号**
'
class Product extends Model
{
use HasFactory;
public function category()
{
return $this->hasOne(Category::class,'id','category_id');
}
'
我得到这个错误
数据库状态[23000]:完整性约束冲突:1048列'category_slug'不能为空(SQL:更新products
设置category_slug
=?,products
. updated_at
= 2022年12月23日12:06:26,其中id
= 1)
3条答案
按热度按时间xam8gpfp1#
我认为您不应该将
category_slug
添加到产品表中将
category_id
添加到products
表时,您已经拥有了有关产品类别的所有信息从产品中获取
category_slug
你可以做这样的事情
vhmi4jdf2#
问题就出在这里:
看起来$request-〉category_slug为空/未定义。如果您确定通过输入从前端发送它,请确保它具有正确的名称属性name=“category_slug”
但是,如果您不从前端发送它,您应该使用slug helper从您选择的字符串生成它,例如:
这将从名称和ID组合生成一个slug。
EDIT:如果您想获得当前产品类别slug,您可以按如下方式使用它:
您可能需要使用$code-〉保存()而不是update()
e1xvtsh33#
更改迁移。
更新记录时似乎没有向
category_slug
列发送任何值。该列必须具有nullable
约束。