Laravel在父视图中编辑子项

时间:2018-03-20 08:43:04

标签: php laravel

我试图让孩子在父母的视野中有能力编辑它们,

controller

public function edit($id)
{
  $option = Option::findOrFail($id);
  return view('admin.options.edit', compact('option'));
}

blade

// getting parent info in edit blade
{{ Form::model($option, array('route' => array('options.update', $option->id), 'method' => 'PUT')) }}

{{ Form::label('title', 'Name') }}
{{ Form::text('title', null, array('class' => 'form-control')) }}

{{ Form::submit('Update', array('class' => 'btn btn-success')) }}
{{ Form::close() }}

// Geting this option subs (children's) in my second tab
@foreach($option->suboptions as $sub)
{{ Form::model($sub, array('route' => array('suboptions.update', $sub->id), 'method' => 'PUT')) }}

{{ Form::label('title', 'Name') }}
{{ Form::text('title', null, array('class' => 'form-control')) }}

{{ Form::label('price', 'Price') }}
{{ Form::text('price', null, array('class' => 'form-control')) }}

{{ Form::submit('Update', array('class' => 'btn btn-success')) }}
{{ Form::close() }}
@endforeach

问题

  

由于我的子表格在循环内,我得到每行的更新按钮   (孩子们)我怎么才能有1个按钮?

更新

检查this video,看看我的意思。

更新2

More explain!

  1. 我的页面is include 2 different forms(其中一个编辑了我的选项 eg. size 这很好,我们没有问题
  2. 我的第二个表单是我的问题将返回我的选项的子项eg. 选项 = size潜在客户 = 12 inch15 inch etc。)为了编辑此潜点,目前我每个都有1个按钮他们(as you see in video i shared),我想要的是我的第二个表格只有一个按钮。

2 个答案:

答案 0 :(得分:0)

您只需打开和关闭循环外的表格

即可
// Geting this option subs (children's) in my second tab
{{ Form::open(array('route' => ['suboptions.updateMany'], 'method' => 'PUT')) }}
@foreach($option->suboptions as $sub)

{{ Form::label('title', 'Name') }}
{{ Form::text('title[]', null, ['class' => 'form-control']) }}

{{ Form::label('price', 'Price') }}
{{ Form::text('price[]', null, ['class' => 'form-control']) }}

@endforeach
{{ Form::submit('Update', ['class' => 'btn btn-success']) }}
{{ Form::close() }}

然后,您将实现updateMany控制器方法以循环提交的数据(验证它)并提交它。

答案 1 :(得分:0)

解决

我已在下方制作了控制器,我可以按照自己的意愿更新数据:

public function subsupdate(Request $req)
    {
      for ($i=0; $i<count($req->id); $i++) {

        DB::table('suboptions')
            ->where('id',$req->id[$i])
            ->update([
                'title' => $req->title[$i],
                'price' => $req->price[$i],
        ]);

      }
      return redirect()->back()->with('success', 'Suboptions updated successfully.');
    }