为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Laravel 5.8 从动态表单更新数据

使用 Laravel 5.8 从动态表单更新数据

PHP
ibeautiful 2022-06-17 16:00:27
我有一些问题,但我不明白为什么它不起作用。我有一个Quotation.php模型,例如:class Quotation extends Model{    protected $table = 'quotation';    protected $fillable = [        'no_quotation',        'subject',        'to',        'qutation_date',        'expire_date',        'pickup',        'destination',        'via',        'customer',        'address',        'totalcost',        'subtotal',        'tax',        'grandtotal'    ];}Item.php模型,例如:class Item extends Model{    protected $table = 'item';    protected $fillable = [        'id_quotation',        'name',        'qty',        'cost',        'totalcost',        'rate',        'totalrate'    ];}TermCondition.php模型,如:class TermCondition extends Model{    protected $table = 'term_and_condition';    protected $fillable = [        'id_quotation',        'caption'    ];}
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

首先,您必须定义表之间的关系。


//QUOTATION Model

public function items()

{

    return $this->hasMany('App\Item');

}


public function terms()

{

    return $this->hasMany('App\TermCondition');

}


//ITEM Model

public function quotation()

{  


   return $this- belongsTo('App\Quotation','id_quotation');

 }


//TermCondition Model

public function quotation()

{  


   return $this- belongsTo('App\Quotation','id_quotation');

 }

现在在您的控制器中,当您成功更新报价时,然后更新其他表的其余部分。


public function update(Request $request) {

$quotation = Quotation::findOrFail($request->id);

$quotation->no_quotation    = $request->no_quotation;

...

if($quotation->update()) {


  $getQuotationID = $quotation->id;


  for ($i = 1; $i <= count($request->items); $i++) {

    $item = Item::where('id_quotation', $getQuotationID)->first();

    $item->id_quotation = $getQuotationID;

    ...

    $item->totalrate    = $request->items[$i]['totalrate'];

    $item->save();

  };


  for ($i = 1; $i <= count($request->terms); $i++) {

    $term = TermCondition::where('id_quotation', $getQuotationID)->first();

    $term->id_quotation = $getQuotationID;

    $term->caption      = $request->terms[$i]['caption'];

    $term->save();

  };


return redirect('quotation-show');

};


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信