0

そのため、laravel 5.2 を使用して API を作成し、VueJs を使用してそこからデータを取得しました。すべての結果を取得することで、 index() アクションのデータを取得できました。今、私の問題はもう少し複雑になります。テーブルからの各投稿が単一の投稿ページに移動するように、show() メソッドを作成する必要があります。

methods: {
        fetchItems: function (page) {
            var data = {page: page};
            this.$http.get('api/v1/pages', data).then(function (response) {
                //look into the routes file and format your response
                this.$set('items', response.data.data);
                this.$set('pagination', response.data.pagination);
            }, function (error) {

            });
        },
        changePage: function (page) {
            this.pagination.current_page = page;
            this.fetchItems(page);
        }
    }

これは私の VueJs コードです。

 <div class="col-md-12" v-for="post in items" track-by="$index">
            <a href="@{{ post.slug }}"><h1>@{{ post.title }}</h1></a>
            <p>@{{ post.body }}</p>
 </div>

これは私のものです すべての投稿を表示

私の質問: 1. show メソッド用に別のファイルを作成する必要がありますか? 2. laravel ioc を活用して、ポスト モデルから $slug を取得し、単一のページを表示するにはどうすればよいですか。

4

1 に答える 1

0

新しいページを作成する必要はありませんが、Vueify などを使用して単一ファイル コンポーネントを作成する場合を除き、作成することをお勧めします。それはより簡単になります。

リスト ビュー、ajax 呼び出し、およびインデックス API を作成したのと同じ方法で、ビュー、ajax 呼び出し、および API を作成して、投稿を表示できます (投稿 ID を使用)。API 応答は、スラッグを含め、表示する必要があるすべてのデータを送信する必要があります。

github リポジトリに基づいて、API 用に次のようなルートを作成します。ここidで、 は投稿 ID です。

Route::resource('show/{id}', 'PagesController@show');
于 2016-06-06T23:37:09.527 に答える