Laravel评级,同时创建推荐

时间:2017-11-24 01:08:13

标签: php laravel

我正在使用this package从用户那里获得费率,这对我来说产品/帖子非常合适,但是当我的数据库中没有记录时我会遇到问题!

我的意思是什么?

通常情况下,当您想要评价时,您将评价数据库中存在的记录,例如存在的帖子或存在的产品,并通过给出开始/费率来表达自己的记录。现在我想使用这个系统来存在一些不存在的东西,例如testimonial意味着:人们写下他们的推荐信并给出明星然后保存它,这里我得到错误

  

约束违规:1048列'rateable_id'不能为空

这只是因为这个包试图在不存在的情况下获得推荐的id,所以我需要一个解决方案来保存两者。

我的表格

<form class="poststars" action="{{route('testimonialsStar')}}" id="addStar" method="POST">
                  {{ csrf_field() }}
                  {{Form::label('comment', 'Comment', array('hidden'))}}
                  {{Form::textarea('comment', null, array('class' => 'form-control'))}}

                  <span style="padding-top: 20px !important;vertical-align: -moz-middle-with-baseline;padding-left: 4%;color: #fff;">give rate</span>
                  <input class="star star-5" value="5" id="star-5" type="radio" name="star"/>
                  <label class="star star-5" for="star-5"></label>
                  <input class="star star-4" value="4" id="star-4" type="radio" name="star"/>
                  <label class="star star-4" for="star-4"></label>
                  <input class="star star-3" value="3" id="star-3" type="radio" name="star"/>
                  <label class="star star-3" for="star-3"></label>
                  <input class="star star-2" value="2" id="star-2" type="radio" name="star"/>
                  <label class="star star-2" for="star-2"></label>
                  <input class="star star-1" value="1" id="star-1" type="radio" name="star"/>
                  <label class="star star-1" for="star-1"></label>

                  <button type="submit" class="btn btn-success" name="submit">Send</button>
                </form>

我的路线

//Testimonial Rating System
Route::post('/ratingtes', 'IndexController@testimonialsStar')->name('testimonialsStar');
Route::get('/writetestimonials', 'IndexController@testimonialsds')->name('testimonialsindex');

我的方法

public function testimonialsStar (Request $request, Testimonial $testimonial) {
      $rating = new Rating;
      $rating->user_id = \Auth::id();
      $rating->rating = $request->input('star');
      $rating->comment = $request->input('comment');
      $rating->rateable_id = str_random(40);
      $testimonial->ratings()->save($rating);
      return redirect()->back();
    }


    public function testimonialsds () {
      return view('frontend.testimonials');
    }

感谢。

0 个答案:

没有答案