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