如何将具有多个字段的动态输入保存到数据库 Laravel 5.7
How can I save dynamic input with multiple fields to database Laravel 5.7
我正在使用 laravel 进行一个项目。该站点的一个功能是保存来自具有四个数据的动态输入的数据;
MObjective、MOutput、年份和 kra_id 应保存到数据库
我试过用这个代码保存;
'''
$objectives = $request->all();
foreach ($objectives as $key) {
// dd($input);
$input = objective::create(array(
'MObjective' => $objectives->MObjective[$key],
'MOutput' => $objectives->MOutput[$key],
'year' => $objectives->year,
'kra_id' => $objectives->kra_id
));
}
'''
我也尝试使用 for 循环但是我得到了一些错误;尝试获取 属性 'MObjective' 的 non-object
这是may控制器;
$objectives = $request->all();
foreach ($objectives as $key) {
// dd($input);
$input = objective::create(array(
'MObjective' => $objectives->MObjective[$key],
'MOutput' => $objectives->MOutput[$key],
'year' => $objectives->year,
'kra_id' => $objectives->kra_id
));
}
我的blade文件;
<form method="POST" action="{{action('ObjectiveController@store')}}">
{{csrf_field()}}
<div class="form-group">
<input type="hidden" name="year" id="year" value="{{now()->year}}" class="form-control">
<input type="hidden" class="form-control" id="kra_id" name="kra_id">
</div>
<div class="form-group">
<label for="message-text" class="col-form-label">Major Objective:</label>
<textarea class="form-control" id="MObjective" name="MObjective"></textarea>
</div>
<div class="form-group">
<label for="message-text" class="col-form-label">Major Output:</label>
<textarea class="form-control" id="MajorOutput" name="MOutput"></textarea>
</div>
<div class="modal-footer">
<b><i>Note:</i></b>
<small>Add Major Objective and Output for selected KRA only</small>
<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-success">Add</button>
</div>
</form>
我的剧本
'''
var i=0;
$('.addRow').on('click', function(){
i++;
addRow();
});
function addRow()
{
var tr='<div class="row">'+'<div class="col-6"><textarea type="text" class="form-control" placeholder="Enter the Major Objective no. '+i+' "name="MObjective['+i+']"></textarea></div>'+
'<div class="col-6"><textarea type="text" class="form-control" name="MOutput['+i+']" placeholder="Enter Major Output for the objective no. '+i+'"></textarea></div>'+
'</div><br>';
$('form').append(tr);
}
'''
我只需要将4个数据保存在一个db内table; MObjective、MOutput、年份和 kra_id。我希望有人能帮助我。提前谢谢你
如果没记错的话,在你的控制器中 $objectives 应该是一个数组而不是一个对象。
我正在使用 laravel 进行一个项目。该站点的一个功能是保存来自具有四个数据的动态输入的数据; MObjective、MOutput、年份和 kra_id 应保存到数据库
我试过用这个代码保存; ''' $objectives = $request->all();
foreach ($objectives as $key) {
// dd($input);
$input = objective::create(array(
'MObjective' => $objectives->MObjective[$key],
'MOutput' => $objectives->MOutput[$key],
'year' => $objectives->year,
'kra_id' => $objectives->kra_id
));
}
''' 我也尝试使用 for 循环但是我得到了一些错误;尝试获取 属性 'MObjective' 的 non-object
这是may控制器;
$objectives = $request->all();
foreach ($objectives as $key) {
// dd($input);
$input = objective::create(array(
'MObjective' => $objectives->MObjective[$key],
'MOutput' => $objectives->MOutput[$key],
'year' => $objectives->year,
'kra_id' => $objectives->kra_id
));
}
我的blade文件;
<form method="POST" action="{{action('ObjectiveController@store')}}">
{{csrf_field()}}
<div class="form-group">
<input type="hidden" name="year" id="year" value="{{now()->year}}" class="form-control">
<input type="hidden" class="form-control" id="kra_id" name="kra_id">
</div>
<div class="form-group">
<label for="message-text" class="col-form-label">Major Objective:</label>
<textarea class="form-control" id="MObjective" name="MObjective"></textarea>
</div>
<div class="form-group">
<label for="message-text" class="col-form-label">Major Output:</label>
<textarea class="form-control" id="MajorOutput" name="MOutput"></textarea>
</div>
<div class="modal-footer">
<b><i>Note:</i></b>
<small>Add Major Objective and Output for selected KRA only</small>
<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-success">Add</button>
</div>
</form>
我的剧本 '''
var i=0;
$('.addRow').on('click', function(){
i++;
addRow();
});
function addRow()
{
var tr='<div class="row">'+'<div class="col-6"><textarea type="text" class="form-control" placeholder="Enter the Major Objective no. '+i+' "name="MObjective['+i+']"></textarea></div>'+
'<div class="col-6"><textarea type="text" class="form-control" name="MOutput['+i+']" placeholder="Enter Major Output for the objective no. '+i+'"></textarea></div>'+
'</div><br>';
$('form').append(tr);
}
'''
我只需要将4个数据保存在一个db内table; MObjective、MOutput、年份和 kra_id。我希望有人能帮助我。提前谢谢你
如果没记错的话,在你的控制器中 $objectives 应该是一个数组而不是一个对象。