Как я могу отправить json данных с моего контроллера для просмотра? - PullRequest
0 голосов
/ 20 февраля 2020
   public function getSectionsForClass(Request $request ,$id )
    {
        $section = Section::all()->where('clas_id',$id);
         return  response()->json($section);

    }

Мне нужно отправить json на мой взгляд в таблице как

@foreach($section as $sec)  
     {{$sec->section}}
      {{$sec->capacity}}
        {{$sec->teacher}}
      {{$sec->class}}

  @endforeach

Это мой ajax код, в котором я отправил идентификатор и URL

 <script type="text/javascript">
         $('#select_id').change(function(){
             // alert('hello');
             var cid = $(this).val();
             if(cid){
                 $.ajax({
                     dataType: "json",
                     url: 'section/index/'+cid,
                     //data: {'class': cid},
                     type:"GET",
                     success: function(response){
                         console.log ((response));

                     },error: (error) => {
                         console.log(JSON.stringify(error));
                   }
              });
             }
         });

     </script>

На маршруте

Route::get('admin/section/index/{id}','SectionController@getSectionsForClass');

Заранее спасибо, надеюсь, я получу ответ

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

В настоящее время вы возвращаете экземпляр построителя запросов в виде ответа json. Вы еще не выполнили запрос.

Чтобы получить результаты по вашему запросу, вам нужно фактически выполнить запрос. Добавьте get() в конце:

public function getSectionsForClass(Request $request ,$id )
{
    $section = Section::where('clas_id', $id)->get();
 //                                          ^^^^^^^
    return  response()->json($section);
}

Конечно, это может быть лучше обработано в разбивке по страницам, если у вас много записей, но вы поняли идею.

0 голосов
/ 20 февраля 2020

Согласно документации Laravel вы можете напрямую отправить json ответ от вашего метода

Метод json автоматически установит заголовок Content-Type на application/json, так как а также преобразовать данный массив в JSON, используя функцию json_encode PHP:

return response()->json([
    // You can pass your array values here
]);

И затем вы можете создать динамическую таблицу c из вашего успеха ajax при добавлении эта таблица в указанном c id, например,

success: function(response){
         for (var key in response) {
          $('#here_table').append( '<tr><td>' + response[key] +  '</td></tr>' );
          }
 }

Laravel -> Http-ответы -> Json -ответы

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