3 回答

TA貢獻1820條經(jīng)驗 獲得超9個贊
您應(yīng)該嘗試以下操作。我在小提琴中稍微調(diào)整了你的代碼。不是將所有內(nèi)容都推送到同一個數(shù)組中,而是將每個元素存儲在一個單獨的數(shù)組中。在小提琴中,您可以找到適應(yīng)代碼。在您的控制器中,您應(yīng)該執(zhí)行以下操作。您還應(yīng)該刪除 Issue $issue 因為您沒有使用它。
public function store(Request $request, Task $task)
{
//
foreach ($request->issue_name as $index => $name) {
$task->issues()->create([
'issue_name' => $name,
'issue_time' => $request->issue_time[$index],
'issue_date' => $request->issue_date[$index],
'issue_type' => $request->issue_type[$index]
]);
}
return back();
}
使用刪除按鈕解決您的問題。添加到您的班級行,例如“刪除此字段”。并調(diào)整您的 javascript 代碼以刪除字段:
$('#dynamicFields').on('click', '.remove-fields', function(){
$('.remov-this-field').remove(); i--;
})

TA貢獻1777條經(jīng)驗 獲得超10個贊
使用內(nèi)置的 Eloquent 方法對您有利。首先,定義關(guān)系:
class Task
{
public function issues()
{
return $this->hasMany(Issues::class);
}
{
class Issue
{
public function task()
{
return $this->belongsTo(Task::class);
}
{
接下來寫一個好幫手的方法。請注意,該create()方法已經(jīng)接受了一個數(shù)組輸入,因此您不必foreach遍歷所有數(shù)組鍵:
class Task
{
...
public function addIssue($issue)
{
return $this->issues()->create($issue);
}
}
可以簡化控制器邏輯,這是進行一些服務(wù)器端驗證的好機會:
public function store(Request $request, Task $task)
{
$attributes = request()->validate([
// issue validation rules here
]);
$task->addIssue($attributes);
return back();
}

TA貢獻2019條經(jīng)驗 獲得超9個贊
您可以嘗試在表單中添加隱藏字段,您應(yīng)該將該字段的值設(shè)置為 task_id,然后在您提交表單時將其傳遞給 Controller。
我認為在那之后你的第一種方法應(yīng)該可以正常工作。
- 3 回答
- 0 關(guān)注
- 350 瀏覽
添加回答
舉報