В настоящее время я работаю с раскрывающимся списком опций выбора проекта для дочерней категории
Раскрывающийся список опций выбора - это внешний ключ из другой таблицы
GoalController
public function create()
{
$categories = GoalType::with('children')->whereNull('parent_id')->get();
$goal = new Goal();
return view('goals.create')
->with('goal', $goal)
->with('categories', $categories)
;
}
Цель модель
class Goal extends Model
{
protected $fillable = [
'id',
'goal_type_id',
'goal_title
];
public function goaltype()
{
return $this->belongsTo('App\Models\GoalType','goal_type_id');
}
}
модель GoalType
class GoalType extends Model
{
protected $fillable = [
'name',
'parent_id',
];
public function children()
{
return $this->hasMany('App\Models\GoalType', 'parent_id');
}
public function parent()
{
return $this->hasOne(App\Models\GoalType::class, 'id', 'parent_id');
}
}
представление
<select id="goal_type" class="form-control @error('goal_type_id') is-invalid @enderror" name="goal_type_id">
<option value="">Select Goal Type</option>
@foreach ($categories as $category)
@if ($category->children)
@foreach ($category->children as $child)
@unless($child->name === 'Job Fundamentals')
<option value="{{ $child->id }}" {{ $child->id == old('category_id', $goal->goal_type_id) ? 'selected' : '' }}> {{ $child->name }}</option>
@endunless
@endforeach
@endif
@endforeach
</select>
В приведенном выше блейде представления я попытался применить вспомогательную функцию old () к опции выбора раскрывающийся список, так что он сохранит свое значение в случае ошибки проверки после отправки.
Я заметил, что это не сработало. Данные в раскрывающемся списке очищаются.
Как мне решить эту проблему?
Спасибо