【发布时间】:2018-08-26 22:58:41
【问题描述】:
我有一个动态表单,用户应该能够在编辑时添加或删除字段。
我能够更新数据库表中的确切数字字段。但我想要的是,如果用户点击了'Delete Subject' 和'Update' 按钮,我希望从数据库中删除整行。
并且,如果他通过单击表单添加主题 'Add another Subject' 并单击 'Update' 我希望添加这些主题。我在这里错过了什么?
注意:我在 New 和 Subjects 之间建立了一对多关系,其中一个 New 有许多主题,并且许多主题属于一个 New(它工作正常)。
新模型
protected $fillable = ['name', 'address'];
public function subjects() {
return $this->hasMany(Subjects::class, 'new_id');
}
主题模型
protected $fillable = ['new_id', 'sub_code', 'sub_name', 'sub_img'];
public function subs(){
return $this->belongsTo(New::class, 'new_id');
}
创建方法
public function create(Request $request, New $new){
$new = New::FindorFail($id)
$subjects= [];
$sub_images = $request->file('sub_img');
$sub_name = $request->sub_name;
for ($i=0; $i < count(request('sub_code')); ++$i)
{
$subjects = new Subjects;
$subjecs->sub_code = request('sub_code')[$i];
$subjects->sub_name = request('sub_name')[$i];
$sub_img_name = uniqid() . '.' . $sub_images[$i]->getClientOriginalExtension();
$sub_images[$i]->move(public_path('/images/'), $sub_img_name);
$subjects->sub_img = '/images/'.$sub_img_name;
$new->subjects()->save($subjects);
}
}
更新方法
public function update(Request $request, $id){
$new=New::FindOrFail($id)
$subjects = Subjects::with(['subs'])->where('new_id', $new->id)->get();
$new->update($request->all());
$i=0;
foreach( $subjects as $new_subjects)
{
$sub_images =request()->file('sub_img');
$sub_name = request('sub_name');
if(isset($sub_images[$i]))
{
$pathToStore = public_path('images');
if($request->hasFile('sub_img') && isset($sub_images[$i]))
{
$sub_img_name = uniqid() . '.' . $sub_images[$i]->getClientOriginalExtension();
$sub_images[$i]->move(public_path('/images/'), $sub_img_name);
$new_subjects->sub_img = '/images/'.$sub_img_name;
$new_subjects->sub_code = request('sub_code')[$i];
$new_subjects->sub_name = request('sub_name')[$i];
$new_subjects->sub_img = "images/{$sub_img_name}";
$i++;
$new->subjects()->save($new_subjects);
}
}
}
}
主题数据库
我希望在用户编辑表单后更新(添加或删除)此表行。
【问题讨论】:
-
你得到的错误是什么?
-
没有错误。更新成功执行,但数据库中未更新主题数。
-
您在哪里尝试将新主题数量保存到数据库中?
-
我有
Subjects表有id、new_id、sub_code、sub_name、sub_img,其中new_id是学生的引用ID。 (更新的问题 - 见截图) -
你想做这样的事情吗? Create dynamic forms
标签: mysql laravel laravel-5 dynamic eloquent