*/ protected $casts = [ 'published' => 'boolean', 'signup_open_at' => 'datetime', 'signup_close_at' => 'datetime', 'branding_json' => 'array', 'settings' => 'array', 'scoring_rules_json' => 'array', ]; public function tracks(): HasMany { return $this->hasMany(CompetitionTrack::class)->orderBy('sort'); } public function formSchemaDefinitions(): HasMany { return $this->hasMany(FormSchemaDefinition::class, 'competition_id'); } /** * 嵌套路由参数 `{form_schema}` 的隐式绑定约定关系名为 formSchemas(见 Model::childRouteBindingRelationshipName)。 */ public function formSchemas(): HasMany { return $this->formSchemaDefinitions(); } public function formSchema(): BelongsTo { return $this->belongsTo(FormSchemaDefinition::class, 'form_schema_id'); } public function reviewFormSchema(): BelongsTo { return $this->belongsTo(FormSchemaDefinition::class, 'review_form_schema_id'); } }