Метод getJSON в Laravel 5

Я приношу пару дней пробуя находить решение, но не нахожу ее (я немного неуклюжий), поэтому прибегаю к вам. Я новый в Laravel, так что вы не бросили мне ссору, если я говорю какое-то стадо ослов.

Я пробую перемещать данные о базе данных в Веб страницу через запрос AJAX с методом getJSON jQuery, чтобы после манипулировать ими (упорядочивать, просачиваться, и т.д.), однако, нет какого-либо ответа, они ни являются ошибками. Не, что является тем, что он бьет козырем.

Мой route (routes.php):

Route::get('musica','MusicaController@getIndex');

Мой драйвер (MusicaController.php):

class MusicaController extends Controller {

    public function getIndex() {
        return View::make('musica');
    }

    public function getMusica() {
        $musica = \DB::table('Musica')
        ->select('Titulo', 'Ano', 'Pais')
        ->orderBy('Ano', 'DESC')
        ->get();

        return Response::json($musica);   
    }
}

Мой вид (в рукописном шрифте) (musica.blade.php):

$(function() {
    $("#boton").on("click", function(e) {
        e.preventDefault();
        $(".prueba3").html("CARGANDO...");

        $.getJSON("/musica", function(data) {
            var mimusic = "";       
            $.each(data, function() {
                mimusic += this.Titulo + " - " + this.Ano  + "<br>";
            })
            $(".prueba3").html(mimusic);
        }); // getJSON

    }); // Click
}); // function

Редактирование, основанное на ответе Орасио:

Я не стараюсь возвращать данные с вида, а перемещать данные о драйвере в поле зрения чтобы там манипулировать ими с jQuery.

Формат, который он использовал, чтобы делать response, - Laravel 4 и благодаря этому ответу уже я знаю, что это не подходящий, но также я не функционирует с форматом Laravel 5.

Уже я смотрел документацию, но он не помогает много и меньше, для которых empicezan с Laravel.

Ты говоришь, что я должен получать данные как договоренность: и это, что он возвращает?:

$musica = \DB::table('Musica')
->select('Titulo', 'Ano', 'Pais')
->orderBy('Ano', 'DESC')
->get();
3
задан 28.01.2016, 06:29
4 ответа

Чтобы возвращать данные о виде в формате JSON, ты был бы должен использовать

public function getIndex() {
    // debes obtener los datos como arreglo
    $datos = [["titulo": "Titulo1", "Ano": "año1"], ...]];

    //Así es el return en laravel 4
    return Response::json($datos);

    // Así en laravel 5
    return response()->json($datos);
 }

Больше информации об ответах здесь:

3
ответ дан 01.12.2019, 08:10

Ты должен использовать метод toJson() с return прямо, asГ-:

  $musica = \DB::table('Musica')
    ->select('Titulo', 'Ano', 'Pais')
    ->orderBy('Ano', 'DESC')
    ->get()
    ->toJson();

  return $musica;
0
ответ дан 01.12.2019, 08:10

Предполагая, что у тебя есть модель, mГєsica, podrГ-схвати использовать:

$musica = Musica::select('titulo', 'ano', 'pais')
      ->orderBy('Ano', 'DESC')
      ->get();

return $response->json($musica->toArray());
0
ответ дан 01.12.2019, 08:10

В твоей просьбе с JQuery ты направляешься к маршруту "/музыка", это звонит в метод index твоего драйвера (MusicaController.php), создает маршрут, который звонил бы в метод (getMusica) твоего драйвера.

Route::get('musica/show', [
    'uses'  => 'MusicaController@getMusica',
    'as'    => 'musica.show'
]);

Сейчас может соглашаться в usa маршрут с просьбой AJAX

$(function() {
    $("#boton").on("click", function(e) {
        e.preventDefault();
        $(".prueba3").html("CARGANDO...");

        $.getJSON("musica/show", function(data) {
            var mimusic = "";       
            $.each(data, function() {
                mimusic += this.Titulo + " - " + this.Ano  + "<br>";
            })
            $(".prueba3").html(mimusic);
        }); // getJSON

    }); // Click
}); // function

Не забывай о том, что в Laravel используется TOKEN (csrf-x-xsrf-token), чтобы иметь безопасные просьбы.

Ты можешь читать больше в официальной документации. Laravel Docs

0
ответ дан 01.12.2019, 08:10

Теги

Похожие вопросы