質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

1回答

728閲覧

Property or method is not defined

退会済みユーザー

退会済みユーザー

総合スコア0

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2021/12/13 13:51

laravelとnuxt.jsでレビュー機能を作成したいです。
Property or method comment is not defined ,Property or method stars is not defined とエラーが出てしまいます。dataのところにcomment:'',stars: '',と記述しているのですが、エラーが解決しないので、アドバイスをいただきたいです。
下記のサイトを参考にさせていただいてます。
https://blog.capilano-fw.com/?p=7341

nuxt

1index.vue 2<template> 3<div class="modal fade" id="review-modal"> 4 <div class="form-group"> 5 <div class="name" > 6 <div class="post_name" v-for="post in posts" > 7 <div class="box"> <nuxt-link :to="`post/${post.id}`"> 8 {{post.name}}</nuxt-link><div class="content2"> 9 {{post.content2}} 10 </div><img v-bind:src="post.path" class="image" > 11           <a href="#" type="button" v-if="!hasMyReview(p.reviews)" @click.prevent="openReviewForm(p.id)"> 12 レビューを投稿 13 </a> 14 </div> 15 16 </div> 17 </div> 18 </div> 19 <h4>スター</h4> 20 <div v-for="star in [5,4,3,2,1]"> 21 <input v-model="stars" type="radio" :value="star"> 22 </div> 23 <div class="form-group"> 24 <h4>コメント</h4> 25 <textarea class="form-control" v-model="comment"></textarea> 26 </div> 27 <div class="modal-footer"> 28 <button type="button" class="btn btn-link mr-2" data-dismiss="modal">閉じる 29 </button> 30 <button type="button" class="btn btn-warning" @click="onSubmit">登録する 31 </button> 32 </div> 33 </div> 34</template> 35 36<style> 37.body-style { 38 background-color: #eee; 39} 40.form-group{ 41 color:black; 42} 43</style> 44 45<script> 46import axios from 'axios'; 47layout:'sample_layout', 48export default { 49 data: { 50 userId: parseInt('{{ auth()->user()->id ?? -1 }}'), // ログイン・ユーザーID ・・・ ⑤ 51 posts: [], 52 post:[], 53 stars: '', 54 reviewParams: { 55 post_id: '', 56 comment:'' 57 } 58 }, 59 head: { 60 61 }、 62 created(){ 63 axios.get(`http://127.0.0.1:8000/api/review`) 64 .then(response => { 65 this.posts= response.data.posts 66 67 }); 68 69 }, 70 methods: { 71 onSubmit(postId) { 72 axios.post('http://127.0.0.1:8000/api/post', { 73 .then(response => { 74 75 if(response.data.result === true) { 76 77 this.getPosts(); 78 $('#review-modal').modal('hide'); 79 80 } 81 82 }) 83 .then((res) => { 84 console.log(res) 85 this.stars = ''; 86 this.comment = ''; 87 this.save = true; 88 console.log('created'); 89 }); 90 } 91 }, 92}

laravel

1 2<?php 3 4namespace App\Http\Model; 5 6use Illuminate\Database\Eloquent\Model; 7 8class Post extends Model 9{ 10 public function posts() 11 { 12 return $this->hasMany('App\Models\Post'); 13 } 14} 15

laravel

1ReviewController.php 2<?php 3 4namespace App\Http\Controllers; 5 6use Illuminate\Http\Request; 7 8class ReviewController extends Controller 9{ 10 public function review(Request $request) 11 { 12 $post = Post::all(); 13 return response()->json(compact('post'),200); 14 } 15 16 public function post(Request $request) { 17 if(!auth()->check()) { 18 $fail('レビューするにはログインしてください。'); 19 return; 20 } 21 22 $review = new \App\PostReview(); 23 $review->post_id = $request->post_id; 24 $review->user_id = $request->user()->id; 25 $review->stars = $request->stars; 26 $review->comment = $request->comment; 27 $result = $review->save(); 28 return ['result' => $result]; 29 } 30 31} 32

laravel

1api.php 2Route::get('/review','ReviewController@review'); 3Route::post('/posts','ReviewController@post'); 4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

関数にすると、いかがでしょうか。

vue

1data() { 2 return { 3 // ... 4 comment: '', 5 // ... 6 } 7}

投稿2021/12/16 10:36

yuhigash

総合スコア327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問