Как передать данные с контроллера для просмотра в laravel? - PullRequest
0 голосов
/ 25 февраля 2019

Мне нужно передать данные из контроллера, чтобы увидеть это код:

Контроллер:

function requete()
{
    $id = Str::random();  
    return view('Demo.requete', compact('id'));
}

Просмотр:

$(document).ready(function() {   
    $.ajax({
        url: "{{ route('support.requete') }}",
        method: "get",
        data: data,
        dataType: "json",
        success: function(data)
        {
            $('#code').html(data.id);//nothing happens here
        }
    });
});

Я получаю эту ошибку:

enter image description here

Ответы [ 4 ]

0 голосов
/ 25 февраля 2019

Вы не должны возвращать представление с Ajax-запросом, это должен быть другой маршрут, по которому следует запрос $ .ajax get.Затем Laravel может возвращать ответы JSON, и вы можете использовать их в своем обратном вызове.

return response()->json([‘id’ => $id]);
0 голосов
/ 25 февраля 2019

Вы не должны использовать echo в представлении.Вам не следует использовать ajax для получения представления (если только вы не хотите получать HTML, а здесь это не так). У вас должна быть другая конечная точка для вашего запроса ajax, если вы хотите получать данные асинхронно, в противном случае вы можете просто вернутьпросмотреть все необходимые данные.

0 голосов
/ 25 февраля 2019

В случае ajax, попробуйте вернуть ответ json

function requete()
{
    $id = Str::random();
    return response()->json([
     "id" => json_encode($id)
   ]);
}
0 голосов
/ 25 февраля 2019

Вы можете сделать:

return view('Demo.requete', compact('id'));

Тогда вы можете использовать {{ $id }} непосредственно в файле блейда.

Обновление:

Вывы используете ajax, поэтому вам потребуется ответ json:

return response()->json(compact('id'), 200);

Тогда вы можете выполнить в ajax успех:

$('#code').html(data.id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...