![](/img/trans.png)
[英]inserting data into database laravel 5.6 relation belongstomany pivot table
[英]inserting data into pivot table with pivot error laravel 5.6
我正在使用belongstomany
關系和數據透視表,可以輕松保存產品,但是當我要保存產品數量時,返回錯誤,這是我的代碼模型發票:
class Invoice extends Model
{
public function products()
{
return $this->belongsToMany('App\Product', 'invoice_product', 'invoice_id')
->withPivot('product_quantity')
->as('invoice_products_pivot');
}
}
和我的發票控制器創建部分:
public function store(Request $request)
{
//Validate
$request->validate([
'title' => 'required|min:3',
'description' => 'required',
]);
$invoices = Invoice::create([
'title' => $request->title,
'description' => $request->description,
'client_id' => $request->client_id,
]);
$product_id1 = $request->input('product_id1');
$product_id2 = $request->has('product_id2');
$product_id3 = $request->has('product_id3');
$product_id4 = $request->has('product_id4');
$product_id5 = $request->has('product_id5');
$invoices->products()->attach($product_id1);
$invoices->products()->attach($product_id2);
$invoices->products()->attach($product_id3);
$invoices->products()->attach($product_id4);
$invoices->products()->attach($product_id5);
return redirect('admin/invoices/' . $invoices->id);
}
這是對不起的看法
<form method="post" action="{{url('admin/invoices')}}">
{{csrf_field()}}
<div class="form-group"> <!-- Street 1 -->
<label for="title" class="control-label">نام</label>
<input type="text" class="form-control" id="title" name="title"
placeholder="Street address, P.O. box, company name, c/o">
</div>
<div class="form-group">
<label>انتخاب محصول</label>
<select class="select-menu2-color select2-hidden-accessible" name="product_id1"
tabindex="-1"
aria-hidden="true">
@foreach($produts as $product)
<option value="{{$product->id}}">{{$product->name}}</option>
@endforeach
</select>
<div class="form-group"> <!-- Street 1 -->
<label for="title" class="control-label">تعداد</label>
<input type="text" class="form-control" id="title" name="product_qa1"
placeholder="Street address, P.O. box, company name, c/o">
</div>
<label>انتخاب محصول</label>
<select class="select-menu2-color select2-hidden-accessible" name="product_id2"
tabindex="-1"
aria-hidden="true">
<option value="">لطفا یک محصول انتخاب کنید</option>
@foreach($produts as $product)
<option value="{{$product->id}}">{{$product->name}}</option>
@endforeach
</select>
<label>انتخاب محصول</label>
<select class="select-menu2-color select2-hidden-accessible" name="product_id3"
tabindex="-1"
aria-hidden="true">
<option value="">لطفا یک محصول انتخاب کنید</option>
@foreach($produts as $product)
<option value="{{$product->id}}">{{$product->name}}</option>
@endforeach
</select>
<label>product1</label>
<select class="select-menu2-color select2-hidden-accessible" name="product_id4"
tabindex="-1"
aria-hidden="true">
<option value="">لطفا یک محصول انتخاب کنید</option>
@foreach($produts as $product)
<option value="{{$product->id}}">{{$product->name}}</option>
@endforeach
</select>
<label>انتخاب محصول</label>
<select class="select-menu2-color select2-hidden-accessible" name="product_id5"
tabindex="-1"
aria-hidden="true">
<option value="">لطفا یک محصول انتخاب کنید</option>
@foreach($produts as $product)
<option value="{{$product->id}}">{{$product->name}}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label class="display-block">انتخاب مشتری</label>
<select class="select-custom-colors select2-hidden-accessible" name="client_id" tabindex="-1"
aria-hidden="true">
@foreach($clients as $client)
<option value="{{$client->id}}">{{$client->title}}</option>
@endforeach
</select>
</div>
<div class="form-group"> <!-- Full Name -->
<label for="description" class="control-label">توضیحات</label>
<input type="text" class="form-control" id="description" name="description"
placeholder="John Deer">
</div>
<button type="submit" class="btn btn-primary btn-raised legitRipple">ارسال</button>
</form>
我在遷移invoice_product表時有invoice_id&product_id&product_quantity,這是我要保存表單時遇到的錯誤:
字段'product_quantity'沒有默認值(SQL:插入invoice_product
( invoice_id
, product_id
)值( invoice_id
))
我相信您的product_quantity字段必須為可為空或具有默認值。我會說在您的表定義中product_quantity看起來像是以下兩者之一:
$table->integer('product_quantity')->nullable();
或$table->integer('product_quantity')->default(0);
最好在類似恕我直言的問題中共享表定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.