Php url值未通过循环更改
我试图显示用户从数据库中的评论,并且可以为他们的评论提供+1。这就是观点Php url值未通过循环更改,php,mysql,laravel,laravel-5,Php,Mysql,Laravel,Laravel 5,我试图显示用户从数据库中的评论,并且可以为他们的评论提供+1。这就是观点 <br>Comments:<br> @foreach($show as $sh) <span class="comment">{{$sh->comment}} --<b style="color:blue">{{$sh->name}},</b> {{$sh->email}}</span> <form
<br>Comments:<br>
@foreach($show as $sh)
<span class="comment">{{$sh->comment}} --<b style="color:blue">{{$sh->name}},</b> {{$sh->email}}</span>
<form method="POST" action="{{url("/review/now/add/{$sh->id}")}}">
{!! csrf_field() !!}<input type="submit" value="+1">
Total score: <mark>{{$sh->score}}</mark><br><br>
@endforeach
控制器:
public function nowadd($id)
{
$add=review::where('id',$id)->get();
$count=$add->score;
$now=$count+1;
$nowadd= review::where('id',$id)->update(['score'=>$now]);
return redirect('/review')
->with('message','your have +1 d the comment.' );
}
使用where子句,我应该在url中选择该id的行,并将+1添加到该id的分数中。但我在这里也失败了。它显示未定义的属性分数。$add可能是导致此错误的数组。但怎么可能呢?当我使用first()时,我只选择一个id为的行代码>而不是get()代码>一切正常,但只针对第一条注释。get()
方法将返回类,first()
将返回查询中的第一个模型实例类
为了更新,您需要使用模型而不是集合。当您试图访问集合上的score
属性时,它将不起作用,因为score
属性位于模型而不是集合上
实际上,您可以使用集合,并使用foreach进行查询,这将在每次迭代时为您提供一个模型
public function nowadd($id)
{
review::where('id', $id)->increment('score',1); // assuming that score is a column in your review database
return redirect('/review')
->with('message','your have +1 d the comment.' );
}
更新:关闭表单
<br>Comments:<br>
@foreach($show as $sh)
<span class="comment">{{$sh->comment}} --<b style="color:blue">{{$sh->name}},</b> {{$sh->email}}</span>
<form method="POST" action="{{url("/review/now/add/{$sh->id}")}}">
{!! csrf_field() !!}<input type="submit" value="+1">
</form>
Total score: <mark>{{$sh->score}}</mark><br><br>
@endforeach
注释:
@foreach($sh显示)
{{$sh->comment}--{{$sh->name},{{{$sh->email}
id}“}}}”>
{!!csrf_field()!!}
总分:{{$sh->score}
@endforeach
我使用first();而不是get();一切正常,但仅限于第一条评论。@AchrafKhouadjaI未被重定向到id,而只是一条。url(“/review/now/add/{$sh->id}”)在这里。我不明白你的意思?如果我提交相应的表单,url(“/review/now/add/{$sh->id}”)总是/review/now/add/1。不是2,3等等,可能是因为你没有添加关闭表单标签?在输入字段add和trybtw之后,使用我的控制器代码,它看起来更干净,我想,^^我没有重定向到一个以外的id。url(“/review/now/add/{$sh->id}”)在这里。@Steve:你想重定向到哪里?如果我提交相应的表单,url(“/review/now/add/{$sh->id}”)总是/review/now/add/1。不是2,3等等@Steve你能检查元素看看表单的url是否正确,而不是总是1吗?需要确保它是查看问题或backend@Steve我就是这么想的。前端有东西。因为后端看起来一切都很好。太棒了,一切正常!
<br>Comments:<br>
@foreach($show as $sh)
<span class="comment">{{$sh->comment}} --<b style="color:blue">{{$sh->name}},</b> {{$sh->email}}</span>
<form method="POST" action="{{url("/review/now/add/{$sh->id}")}}">
{!! csrf_field() !!}<input type="submit" value="+1">
</form>
Total score: <mark>{{$sh->score}}</mark><br><br>
@endforeach