Laravel - Сбой вспомогательной функции old () в Laravel раскрывающемся списке выбора дочерней категории - PullRequest
0 голосов
/ 22 апреля 2020

В настоящее время я работаю с раскрывающимся списком опций выбора проекта для дочерней категории

Раскрывающийся список опций выбора - это внешний ключ из другой таблицы

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' : '' }}>&nbsp;&nbsp;{{ $child->name }}</option>
                    @endunless
                    @endforeach
                  @endif
                @endforeach
              </select>

В приведенном выше блейде представления я попытался применить вспомогательную функцию old () к опции выбора раскрывающийся список, так что он сохранит свое значение в случае ошибки проверки после отправки.

Я заметил, что это не сработало. Данные в раскрывающемся списке очищаются.

Как мне решить эту проблему?

Спасибо

1 Ответ

1 голос
/ 22 апреля 2020
<option value="{{ $child->id }}" {{ (old("goal_type_id") == $child->id ? "selected":"") }}>&nbsp;&nbsp;{{ $child->name }}</option>

Попробуйте это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...