Laravel - Как разрешить GET http://localhost: 8888 / get / findScore? Id = 2 500 (внутренняя ошибка сервера) - PullRequest
0 голосов
/ 04 марта 2020

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

Я пытаюсь установить значение раскрывающейся загрузки в текстовом поле при изменении.

public function findScore(Request $request)
{
    $userCompany = Auth::user()->company_id;
    $userEmployee = Auth::user()->employee_id;

    $identities                     = DB::table('appraisal_identity')->select('id')->where('company_id', $userCompany)->where('is_current', 1)->first();     
    $child  = DB::table('appraisal_goal_types')->where('company_id', $userCompany)->where('id',$request->id)->first();
    $parentid  = DB::table('appraisal_goal_types')->select('parent_id')->where('company_id', $userCompany)->where('id',$request->id)->first();
   if(empty($child))
   {
       abort(404);
   }  
   $weightedscore = DB::table('appraisal_goals')->select(DB::raw("SUM(weighted_score) as weighted_score"))->where('appraisal_identity_id', $identities)->where('employee_id', $userEmployee)->where('parent_id', $parentid)->get();
   //$child = $childs->max_score;
    $maxscore = DB::table('appraisal_goal_types')->select('max_score')->find($child->parent_id);
    return response()->json([
        'maxscore' => $maxscore->max_score,
        'weightedscore' => $weightedscore
    ]);        
}

public function create()
{
  $userCompany = Auth::user()->company_id;
 $userEmployee = Auth::user()->employee_id;

 $identities = DB::table('appraisal_identity')->select('id','appraisal_name')->where('company_id', 
$userCompany)->where('is_current', 1)->first();
$goaltypes = AppraisalGoalType::where('company_id', $userCompany)->get(); $categories = AppraisalGoalType::with('children')->where('company_id', $userCompany)->whereNull('parent_id')->get();

return view('appraisal.appraisal_goals.create')
    ->with('goaltypes', $goaltypes)
    ->with('categories', $categories)
    ->with('identities', $identities)
    ;
}

Я отправляю max_score и weighted_score как json.

route:

Route :: get ('get / findScore', 'Appraisal \ AppraisalGoalsController@findScore') -> name ('get.scores.all «); лезвие вида

 <form  action="{{route('appraisal.appraisal_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="goal_type" class="form-control" name="goal_type_id">
        <option value="">Select Goal Type</option>

        @foreach ($categories as $category)
        @unless($category->name === 'Job Fundamentals')
          <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
          @endunless
        @endforeach
      </select>
    </div>
  </div>    

<input type="text" id="max_score"  class="form-control" >
<input type="text" id="weighted_score"  class="form-control" >

</form>
    <script type="text/javascript">
    $(document).ready(function() {
        $(document).on('change', '#goal_type', function() {
            var air_id =  $(this).val();

            var a = $(this).parent();

            console.log("Its Change !");

            var op = "";
            
         

            $.ajax({
                type: 'get',
                url: '{{ route('get.scores.all') }}',
                data: { 'id': air_id },
                dataType: 'json',      //return data will be json
                success: function(data) {
                    // console.log("price");
                    console.log(data.maxscore);
                    console.log(data.weightedscore);
                     $('#max_score').val(data.maxscore);
                     $('#weighted_score').val(data.weightedscore);
                },
                error:function(){

                }
            });
        });
    });
    </script>

Я ожидал, что выпадающий onchange должен загрузить max_score и weighted_score,

max_score должен быть загружен в

<input type="text" id="max_score" class="form-control" >

и

weighted_score должен быть загружен в

<input type="text" id="weighted_score" class="form-control" >

, но я получил эту ошибку

GET http://localhost: 8888 / peopleedge / get / findScore ? id = 2 500 (Внутренняя ошибка сервера)

Когда я удалил weighted_score, я обнаружил, что max_score работает отлично. Это из-за того, как я сделал сумму

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

Спасибо

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