Php 如何在单击按钮时在表中递增LAVEL

Php 如何在单击按钮时在表中递增LAVEL,php,laravel,Php,Laravel,我有Home.blade.php,如果我在其中单击投票按钮,它应该会增加候选表中的计数 home.blade.php @foreach ($file as $show) <div class="col-md-3" style="margin-bottom: 20px;"> <div class="card"> <img src="{{$show->image}}" style="width:100%">

我有Home.blade.php,如果我在其中单击
投票按钮
,它应该会增加候选表中的计数

home.blade.php

@foreach ($file as $show)
    <div class="col-md-3" style="margin-bottom: 20px;">
       <div class="card">
          <img src="{{$show->image}}"  style="width:100%">
          <div class="card-body">
             <h5 class="title">President</h5>
             <p class="card-text">Name : {{$show->name}}</p>
             <a href="return Homecontroller@Count"> <button>VOTE</button> </a>
          </div>
       </div>
    </div>
@endforeach
Route::put('/votesUp/{vote}', 'HomeController@upVote')->name('votes.upVote');
Route::put('/votesDown/{vote}', 'HomeController@downVote')->name('votes.downVote');
路线

Route::get('/home','Homecontroller@Count');

请帮助我增加计数,如果没有,请使用此方法。在迁移过程中,请确保列计数为整数类型 以及:

你写错了

    <a href="return Homecontroller@Count"> <button>VOTE</button> </a>

换成

<a href="{{action(Homecontroller@Count)}}"> <button>VOTE</button> </a>

是的,有更好的方法

将其添加到web.php中

@foreach ($file as $show)
    <div class="col-md-3" style="margin-bottom: 20px;">
       <div class="card">
          <img src="{{$show->image}}"  style="width:100%">
          <div class="card-body">
             <h5 class="title">President</h5>
             <p class="card-text">Name : {{$show->name}}</p>
             <a href="return Homecontroller@Count"> <button>VOTE</button> </a>
          </div>
       </div>
    </div>
@endforeach
Route::put('/votesUp/{vote}', 'HomeController@upVote')->name('votes.upVote');
Route::put('/votesDown/{vote}', 'HomeController@downVote')->name('votes.downVote');
在视图列表中,它是
index.blade.php
添加这两个按钮

制表方式

DB门面方式

解释:

当您点击upvote按钮时,
候选人
表格中的存档
投票数
增加了1

当您点击下一票按钮时,
候选人
表中的field
票数
递减1

编辑未定义的候选变量

找到这条线

@foreach($candidates as $item)
并替换为

@foreach ($file as $item)
修复


类App\Http\Controllers\HomeController不存在

您的控制器类

主控制器

但我把它写错了

主控制器


投票按钮应如下所示:

<a href="{{ action('Homecontroller@Count' }}"><button>VOTE</button></a>

由于上面很好地回答了Upvote和Downvote等功能,我还将添加节流功能。现在,创建一个bot很容易,即使您使用csrf令牌,它也会发送upvote请求

我想补充:

'middleware' => 'throttle:5'
每个IP地址每分钟只允许5个请求。不是完全阻止它,而是让它变得更难

Route::put('/votesUp/{vote}', 'Homecontroller@upVote')->middleware('throttle:5')->name('votes.upVote');
Route::put('/votesDown/{vote}', 'Homecontroller@downVote')->middleware('throttle:5')->name('votes.downVote');

你的代码是正确的。您面临的问题是什么?请确保您的列
count
在迁移过程中是整数。是否可以告诉您是否单击该按钮,然后它将被调用到您的控制器方法?它会给出404错误“Action App\Http\Controllers”\Homecontroller@Count没有定义。(View:/home/sachin/dd/sjc-voting-system/sjcvoting/resources/views/home.blade.php)“确保您给出了正确的控制器路径****您能为我推荐任何ajax函数或javascript吗谢谢,但它显示了错误未定义的变量candidate谢谢我这么做了,但现在我遇到了这种错误。”“Class App\Http\Controllers\HomeController不存在”如果您的问题已解决,请将问题标记为已回答,以便将来会有所帮助非常感谢您的想法。
Route::put('/votesUp/{vote}', 'HomeController@upVote')->name('votes.upVote');
Route::put('/votesDown/{vote}', 'HomeController@downVote')->name('votes.downVote');
Route::put('/votesUp/{vote}', 'Homecontroller@upVote')->name('votes.upVote');
Route::put('/votesDown/{vote}', 'Homecontroller@downVote')->name('votes.downVote');
<a href="{{ action('Homecontroller@Count' }}"><button>VOTE</button></a>
'middleware' => 'throttle:5'
Route::put('/votesUp/{vote}', 'Homecontroller@upVote')->middleware('throttle:5')->name('votes.upVote');
Route::put('/votesDown/{vote}', 'Homecontroller@downVote')->middleware('throttle:5')->name('votes.downVote');