![](/img/trans.png)
[英]SQLSTATE[23000]: Integrity constraint violation: 1048 Laravel 4
[英]Laravel 5.8 SQLSTATE[23000]: Integrity constraint violation: 1048
添加 TinyMCE 編輯器而不是我擁有的通用編輯器后,我收到 SQLSTATE[23000]:完整性約束違規錯誤。 在做了一些研究后,我發現我錯過了name
標簽。 但是添加它並沒有什么不同。 我在下面添加了我的代碼。
刀片文件
<div class="row" style="padding-top: 15px;">
<div class="col-lg-10 col-md-10">
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">Add Product</h3>
</div>
<!-- /.card-header -->
<!-- form start -->
<form role="form" action="{{ route('product.store') }}" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="card-body">
<div class="form-group">
<label for="productName">Product Name</label>
<input type="text" class="form-control" id="productName" name="productName" placeholder="Product Name">
</div>
<div class="form-group">
<label for="slug">Slug</label>
<input type="text" class="form-control" id="slug" name="slug" placeholder="slug">
</div>
<div class="form-group">
<div class="pull-right">
<label for="image">File input</label>
<input type="file" name="image" id="image">
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="card card-outline card-info">
<div class="card-header">
<h3 class="card-title">
Product Description
</h3>
</div>
<!-- /.card-header -->
<div class="card-body pad">
<div class="mb-3">
<textarea id="basic-conf" class="textarea" name="description" placeholder="Place some text here" style="width: 100%; height: 200px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea>
</div>
</div>
</div>
</div>
<!-- /.col-->
</div>
<!-- /.card-body -->
<div class="card-footer">
<input type="submit" class="btn btn-primary">
<a href='{{ route('product.index') }}' class="btn btn-warning">Back</a>
</div>
</form>
</div>
</div>
</div>
controller
public function store(Request $request)
{
$this->validate($request, [
'productName'=>'required',
'slug'=>'required',
'image'=>'required',
'description'=>'required',
]);
$product = new product();
$product->product_name = $request->productName;
if ($request->hasFile('image')) {
$image = $request->file('image');
$image_name = time() . $image->getClientOriginalName();
$destinationPath = public_path('/uploads/products');
$image->move($destinationPath, $image_name);
$product->image = $image_name;
}
$product->slug = $request->slug;
$product->description = $request->productDescription;
$product->save();
return redirect(route('product.index'));
}
遷移文件
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('product_name');
$table->string('slug')->unique();
$table->text('description');
$table->string('image');
$table->timestamps();
});
}
您已將文本區域命名為“描述”
<div class="card-body pad">
<div class="mb-3">
<textarea id="basic-conf" class="textarea" name="description" placeholder="Place some text here" style="width: 100%; height: 200px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea>
</div>
</div>
您正在嘗試通過 $request object 的鍵“productDescription”獲取價值,這自然會返回 null。
嘗試
public function store(Request $request)
{
$this->validate($request, [
'productName'=>'required',
'slug'=>'required',
'image'=>'required',
'description'=>'required',
]);
$product = new product();
$product->product_name = $request->productName;
if ($request->hasFile('image')) {
$image = $request->file('image');
$image_name = time() . $image->getClientOriginalName();
$destinationPath = public_path('/uploads/products');
$image->move($destinationPath, $image_name);
$product->image = $image_name;
}
$product->slug = $request->slug;
$product->description = $request->description; //changed from productDescription to description
$product->save();
return redirect(route('product.index'));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.