Laravel - Как реализовать вспомогательную функцию Laravel old () в дочерней категории для сохранения значения - PullRequest
0 голосов
/ 21 апреля 2020

Я пытался сделать это в течение нескольких дней безрезультатно.

Я использую Laravel -5,8 для своего проекта веб-приложения.

Контроллер

public function create()
{
    $categories = GoalType::with('children')->whereNull('parent_id')->get();
    $goal = new Goal();
    $goaldetail = new GoalDetail();

    return view('goals.create')
            ->with('goal', $goal)
    ->with('goaldetail', $goaldetail)
            ->with('categories', $categories);
}

public function store(GoalRequest $request)
{
 try {
    $goal = new Goal();
$goal->goal_type_id             = $request->goal_type_id;
    $goal->weighted_score           = $request->weighted_score;
    $goal->goal_title               = $request->goal_title;
    $goal->goal_description         = $request->goal_description;
     $goal->save(); 

    foreach ( $request->activity as $key => $activity){
        $startDate = Carbon::parse($request->start_date[$key]);
        $endDate = Carbon::parse($request->end_date[$key]);

   $insert_array = [
        'kpi_description'            => $request->kpi_description[$key],
        'activity'                   => $request->activity[$key], 
        'start_date'                 => $startDate ->toDateTimeString(),
        'end_date'                   => $endDate->toDateTimeString(),                
    ];

   GoalDetail::create($insert_array );
     }
        Session::flash('success', 'Goal is created successfully');
        return redirect()->route(goals.index');
  } catch (Exception $exception) {
           Session::flash('error', 'Action failed! Please try again');
        return redirect()->route('goals.index');
  }
}

view

 <form  action="{{route('goals.store')}}" method="post" class="form-horizontal" enctype="multipart/form-data">
   {{csrf_field()}}
   <div class="card-body">
    <div class="form-body">
    <div class="row">

          <div class="col-12 col-sm-6">
            <div class="form-group">
              <label class="control-label"> Goal Type:<span style="color:red;">*</span></label>
              <select id="class="form-control" name="goal_type_id">
              <option value="">Select Goal Type</option>

                @foreach ($categories as $category)
                  <option hidden value="{{ $category->id }}" {{ $category->id == old('category_id') ? 'selected' : '' }}>{{ $category->name }}</option>

                  @if ($category->children)
                    @foreach ($category->children as $child)
                    @unless($child->name === 'Job Fundamentals')
                      <option value="{{ $child->id }}" {{ $child->id == old('category_id') ? 'selected' : '' }}>&nbsp;&nbsp;{{ $child->name }}</option>
                    @endunless
                    @endforeach
                  @endif
                @endforeach
              </select>
            </div>
          </div>    


   <div class="col-sm-12">
        <table class="table table-bordered">
                    <thead>
                    <tr>
                        <th scope="col">Activity<span style="color:red;">*</span></th>
                        <th scope="col">KPI<span style="color:red;">*</span></th>
                        <th scope="col">Start Date<span style="color:red;">*</span></th>
                        <th scope="col">End Date<span style="color:red;">*</span></th>
                        <th scope="col"><a class="btn btn-info addRow"><i class="fa fa-plus"></i></a></th>
                    </tr>
                    </thead>
                    <tbody>
                    <tr>
                        <td><input type="text" name="activity[]" class="form-control activity" ></td>
                        <td><input type="date" class="form-control start_date" placeholder="dd/mm/yyyy" name="start_date[]"  min="{{Carbon\Carbon::now()->firstOfYear()->format('Y-m-d')}}" max="{{Carbon\Carbon::now()->lastOfYear()->format('Y-m-d')}}"></td>
                        <td><input type="date" class="form-control end_date" placeholder="dd/mm/yyyy" name="end_date[]"  min="{{Carbon\Carbon::now()->firstOfYear()->format('Y-m-d')}}" max="{{Carbon\Carbon::now()->lastOfYear()->format('Y-m-d')}}"></td>
                        <td><a class="btn btn-danger remove"> <i class="fa fa-times"></i></a></td>
                     </tr>
                    </tbody>

                </table>
    </div>
    </div>
 </div>
</div>          
<!-- /.card-body -->
<div class="card-footer">
  <button type="submit" class="btn btn-primary">{{ trans('global.save') }}</button>
</div>           

</form>

Проблема в том, что когда я отправлял форму. Если возникает ошибка, приложение очищает все элементы управления вводом (выпадающий список, дата и т. Д. c.

. Как использовать старую вспомогательную функцию, чтобы сохранить значение в выпадающем списке выбора для group_type_id ( $ категорий), а также активность [], start_date [] и end_date []?

Спасибо

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