【发布时间】:2018-08-26 19:49:13
【问题描述】:
我想要一个添加另一个表单按钮,该按钮将复制我表单的所有字段,但仍将保留一个提交按钮并将其所有数据传递到控制器以使用单个查询插入它。
这是打开表单的create.blade.php
@extends('encoder-dashboard.layouts.app')
@section('css')
<link rel="stylesheet" href="/css/datepicker.css">
@endsection
@section('content')
<section class="content-header">
<h1>
Add New Analysis Request
</h1>
</section>
<div class="content">
@include('adminlte-templates::common.errors')
<div class="box box-primary">
<div class="box-body">
<div class="row">
{!! Form::open(['route' => 'encoder.analysis-request.store']) !!}
@include('encoder-dashboard.analysis-request.fields')
{!! Form::close() !!}
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
<script src="/js/datepicker.js"></script>
<script>
$('#datepicker').datepicker({
autoclose: true
});
</script>
@endsection
以下是 fields.blade.php
中列出的字段<!-- Client Id Field -->
<div class="form-group col-sm-6">
{!! Form::label('client_id', 'Client Name:') !!}
{!! Form::select('client_id[]', $client, null, ['class' => 'form-control','required'])!!}
</div>
<!-- Password Field -->
<div class="form-group col-sm-6">
{!! Form::label('sample_code', 'Sample Code:') !!}
{!! Form::text('sample_code[]', null, ['class' => 'form-control','required']) !!}
</div>
<!-- Password Field -->
<div class="form-group col-sm-6">
{!! Form::label('sample_description', 'Description:') !!}
{!! Form::text('sample_description[]', null, ['class' => 'form-control','required']) !!}
</div>
<!-- Password Field -->
<div class="form-group col-sm-6">
{!! Form::label('quantity', 'Quantity:') !!}
{!! Form::number('quantity[]', null, ['class' => 'form-control','required']) !!}
</div>
<!-- Password Field -->
<div class="form-group col-sm-6">
{!! Form::label('analysis_requested', 'Analysis Request:') !!}
{!! Form::text('analysis_requested[]', null, ['class' => 'form-control','required']) !!}
</div>
<!-- Password Field -->
<div class="form-group col-sm-6">
{!! Form::label('special_instruction', 'Special Instruction:') !!}
{!! Form::text('special_instruction[]', null, ['class' => 'form-control','required']) !!}
</div>
<!-- Submit Field -->
<div class="form-group col-sm-12">
{!! Form::submit('Save', ['class' => 'btn btn-success', 'onClick' => 'this.form.submit(); this.disabled=true; this.value="Saving…";']) !!}
<a href="{!! route('encoder.analysis-request.index') !!}" class="btn btn-default">Cancel</a>
</div>
表单上面的所有字段都将被复制并作为数组传递,对吗?我应该如何使用 jQuery 或简单的 vanila JS 来做到这一点?
如果我传递这些数据,它会看起来像这样。
array:8 [▼
"_token" => "xEGtr4h0f4gim0sLvABZivvq36UNaRHWJ08PMWTI"
"client_id" => array:1 [▼
0 => "1"
]
"sample_code" => array:1 [▼
0 => "eqwewqeqewqrwereqwe"
]
"sample_description" => array:1 [▼
0 => "dasdsadsadsadasd"
]
"quantity" => array:1 [▼
0 => "232"
]
"analysis_requested" => array:1 [▼
0 => "dsadsadsadsadsad"
]
"special_instruction" => array:1 [▼
0 => "dwqewqewqewqewqeq"
]
]
这是我插入一条记录时的以下查询。
$analysis_request = $this->analysisrequestRepository->create([
'client_id' => $input['client_id'],
'sample_code' => $input['sample_code'],
'sample_description' => $input['sample_description'],
'quantity' => $input['quantity'],
'analysis_requested' => $input['analysis_requested'],
'special_instruction' => $input['special_instruction'],
'status' => 'for_testing'
]);
$id = $analysis_request->id;
$request_actors = RequestActors::create([
'request_id' => $id,
'encoder_id' => Auth::guard('encoder')->user()->id,
'microbiologist_id' => null
]);
这是我上面插入一条记录的查询。我还执行了另一个查询来插入请求的 id,该请求与插入在第一个查询中的分析请求有关系。
现在,如果我要插入很多,我会在一个数组中创建一个数组并将其插入每条记录,对吗?像这样。
$data = array(
array(
'client_id' => $input['client_id'],
'sample_code' => $input['sample_code'],
'sample_description' => $input['sample_description'],
'quantity' => $input['quantity'],
'analysis_requested' => $input['analysis_requested'],
'special_instruction' => $input['special_instruction'],
'status' => 'for_testing'
),
// and so on.
);
AnalysisRequest::insert($data);
但我在上面的代码中有一个错误,它说 数组到字符串的转换
或者如果我为每个都做一个会更好吗?
我在这里唯一的目标是根据要添加的条目执行插入许多查询。
感谢有人可以提供帮助。 提前致谢。
【问题讨论】:
标签: php laravel laravel-5 laravel-5.5 bulkinsert