1
即時通訊使用Laravel創建一個相當簡單的應用程序。將兩個JSON模型對象從PHP通過AJAX傳遞給JS
我有這樣的控制器功能偉大的工作:
if(Request::ajax())
{
$joke = Joke::where('type', '=', 'kid')->get()->random(1);
if (Session::has('joke'))
{
Session::forget('joke');
}
Session::put('joke', $joke);
return Response::json($joke);
}
但是,如果我改變的最後一個行:
Session::put('joke', $joke);
$user = $joke->user;
return Response::json([ 'joke' => $joke, 'user' => $user);
Ajax調用成功,但我不能使用$笑話或$用戶在我的JS了。
這裏是Ajax調用:
$.ajax({
type: "POST",
url: url,
data: { rating: userRating },
success: function(data){
var textString = 'Thanks for rating! This little gems score is a sweet ' + data.joke.rating + '!';
$('.jokeRating').html(textString);
},
error: function(){
// load a message indicating it didnt work
$('.jokeRating').html('It didnt work, sorry!');
},
});
什麼,我想補充的是一樣的東西
var authorString = '~' + data.user.name;
$('.author').html(author);
雄辯的關係設置正確。 $笑話 - >用戶肯定工作,因爲我放置:
Route::get('/var', function()
{
$joke = Joke::find(1);
$user = $joke->user;
dd($user);
});
在routes.php,它通過完美。
我在哪裏跳閘?
謝謝你,這也適用像的toJSON方法。但是,它不會讓我像我想要的那樣在js中訪問我的變量。 data.joke.joke或data.user.email中斷腳本。如果我只顯示'data.joke',它將通過JSON對象和它們的所有屬性來實現,如果我將'data.user'顯示爲它的用戶JSON對象。我如何在AJAX上成功訪問這個問題? – diabetesjones 2014-10-30 19:20:33
編輯:沒關係,它實際上與你的工作,但不與toJson。非常感謝你! – diabetesjones 2014-10-30 19:42:50