我陷入了嵌套的 hasmany 关系。这是一个场景,没有用户单独输入的单元,并且此表单中的里程碑必须等于单元数,并且每个单元可以有多个里程碑。我试图循环,但它不工作。
for($i = 1; $i <= $noOfUnit; $i++){
$form->hasmany('majorMilestone', 'Unit '.$i , function (Form\NestedForm $form) use($visitId, $projectId, $ps2EditId, $i) {
$form->hidden('project_id', 'ProjectId')->default($projectId);
$form->text('major_milestone', "Major Milestone")->prepend(false);
$form->date('scheduled', "Scheduled");
})->setWidth(9, 3);
}
更多说明
例如,我在第一页有一个文本输入,用户在其中添加了单位数。在第二页上,我需要为每个单元记录完成日期的步骤。然后我循环了单元的数量以获得以下结构
我有下面的模型来添加/修改数据
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Step2 extends Model
{
protected $table = 'proj_clearence_bckwrd_frwrd_supply';
public $timestamps = false;
public function majormilestone1()
{
return $this->hasMany(Majormilestone::class,'edit_id')->where('unit_no', '1');
}
public function majormilestone2()
{
return $this->hasMany(Majormilestone::class,'edit_id')->where('unit_no', '2');
}
public function majormilestone3()
{
return $this->hasMany(Majormilestone::class,'edit_id')->where('unit_no', '3');
}
}
但此代码仅限于三个单元。我需要删除这个依赖。我希望这现在很清楚。
这是MajorMilestone
模型的代码。
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;
class Majormilestone extends Model
{
protected $table = 'major_milestone';
protected $fillable = ['project_id', 'edit_id', 'visit_id', 'unit_no', 'major_milestone', 'scheduled', 'anticipated', 'actual', 'remarks'];
public $timestamps = false;
public function step2()
{
return $this->belongsTo(Step2::class,'edit_id');
}
}