私はタイトルとボディ属性でしかデータを取得できませんが、名前のデータを取得すると、ページを更新すると空になりますが、自動的に投稿すると表示されます。Laravel angleを使ってuser_idで名前を取得する方法は?
何らかの理由でangularjsが名前を正常に取得していません。
注:私はlaravelを使用しています。例えば
ここ:
ここでは、サーバー側である:
のPostController
public function getPosts() {
$posts = Post::with('user')->get();
$response = new Response(json_encode($posts));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
public function storePost(Request $request) {
$data = request()->validate([
'title' => 'required|max:120',
'body' => 'required|max:1000'
]);
$data['user_id'] = auth()->user()->id;
$data['name'] = auth()->user()->name;
$post = Post::create($data);
$response = new Response(json_encode($data));
$response->headers->set('Content-Type', 'application/json');
// return redirect('/home')->withMessage('A new post was created.');
return $response;
}
main.js
$scope.myposts = {};
$scope.addPost = function() {
$http.post('/auth/post', {
title: $scope.post.title,
body: $scope.post.body
}).then(function(data, status, headers, config) {
console.log(data);
$scope.myposts.push(data.data);
});
$scope.post.title = '';
$scope.post.body = '';
};
$scope.deletePost = function(post) {
var index = $scope.myposts.indexOf(post);
if (index != -1) {
$scope.myposts.splice(index, 1);
}
$http.delete('auth/post/' + post.id);
};
$scope.getPosts = function() {
$http.get('/auth/posts').then(function(data) {
$scope.myposts = data.data;
}).then(function(data, status, header, config) {});
};
HTML:
<div id="mypost" class="col-md-8 panel-default" ng-repeat="post in myposts">
<div id="eli-style-heading" class="panel-heading">
<% post.title %>
</div>
<div class="panel-body panel">
<figure>
<p>
<% post.body %>
</p>
by:
<p>
<% post.user.name %>
</p>
</figure>
<span><button ng-click="deletePost(post)">x</button></span>
</div>
</div>
私は最初のリフレッシュせずにコンテンツを追加します(非同期)
ページ更新の (別のポストごとに異なるログ)上記
申し訳ありませんが、さらに説明することができます – Beginner
ああ、あなたの問題は表示されません。 – Beginner
確かに、私は投稿のユーザーとその名前を表示する投稿を追加すると、ページを更新するとユーザーの名前が消えます。スレッド内のイメージのようなタイトルとボディ属性のみを表示します。 画像に表示される最初の投稿は、ユーザー名のないタイトルと本文の内容です 画像に表示される2番目の投稿はタイトルと本文ですが、ユーザー名はそのままですが、名前を更新すると消えます – BARNOWL