Php 拉威尔投票系统

Php 拉威尔投票系统,php,mysql,laravel,Php,Mysql,Laravel,我正在我的laravel学校项目中实施一个投票系统,它将是一个在线学校平台,学生可以上传项目,其他学生可以对发布的内容进行投票 不知怎的,我所做的一切都不管用。。。这是我到目前为止的代码,希望有人能帮助我,也许能帮助我如何显示一个项目的投票数 这是我的数据库迁移: Schema::create('votes', function($table){ $table->increments('id'); $table->integer('user_id')->unsi

我正在我的laravel学校项目中实施一个投票系统,它将是一个在线学校平台,学生可以上传项目,其他学生可以对发布的内容进行投票


不知怎的,我所做的一切都不管用。。。这是我到目前为止的代码,希望有人能帮助我,也许能帮助我如何显示一个项目的投票数

这是我的数据库迁移:

Schema::create('votes', function($table){
    $table->increments('id');
    $table->integer('user_id')->unsigned();
    $table->integer('project_id')->unsigned();
    $table->timestamps();

    $table->foreign('user_id')->references('id')->on('users');
    $table->foreign('project_id')->references('id')->on('projects');
});
我的模型:

Class Vote extends Eloquent{

public function user(){
    return $this->belongsTo('User');
}
public function project(){
    return $this->belongsTo('Project');
}

}
我的看法是:

@foreach ($projects as $project)
    <li class="medium-4 columns">
        <div class="canvas-medium">
            <img src="{{ $project->image }}">
        </div>
        <p class="title">{{ $project->name }}</p>
        <p class="owner">By 
            <a href="profile/{{ $project->user_id }}">{{ $project->user->firstname }} {{ $project->user->name }}</a>
            <a href="/vote/{{ $project->id }}">Vote</a>
        </p>
    </li>
@endforeach
Routes.php:

Route::get('/projects', 'ProjectController@showall');
Route::get('/projects/vote/{id}', 'VoteController@vote');
改变

<a href="/vote/{{ $project->id }}">Vote</a>

我将避免通过路由添加链接,而是通过控制器进行链接:

<a href="{{ URL::action('VoteController@vote', [$project->id]) }}">Vote</a>

例如,查看页面时,URL将显示为“”。此外,如果您按以下方式更改路线:

  • OLD
    /projects/vote/{id}
  • 新建
    /projects/{id}/vote

您的链接将自动更改为使用到该控制器的新路由。

“不知何故,我所做的工作不起作用…”好的,到底是什么工作不起作用?你有错误吗?让我们了解一些细节!当我点击投票链接时,它会将我带到/vote/1 for ex.并显示错误“Symfony\Component\HttpKernel\Exception\NotFoundHttpException”,谢谢它能工作!是的,但我第一次想让这一切顺利。。我希望用户只能投票一次。你也知道我如何在一个项目上显示所有的选票吗?我不使用雄辩。所以我不知道它将如何出现。在查询生成器中,它很简单<代码>返回DB::tables('voates')->其中('project_id','=',$id)->count()如何从视图中获取$id?我们还可以使用“可调用”控制器,例如“StoreVote”@在这一点上,你当然可以做到;在2014年的Laravel 4.2中,你就是不能:)哦,是的)它的老问题:)
<a href="/projects/vote/{{ $project->id }}">Vote</a>
return DB::table('project AS p')->select([DB::raw('@project:=p.id'), 
       DB::raw('(SELECT COUNT(id) FROM votes AS v WHERE v.project_id = @project) AS votes'),
       ])->paginate(30); //or get()
<a href="{{ URL::action('VoteController@vote', [$project->id]) }}">Vote</a>