我的网站上有意见书,这些意见书有票。
上次投票以“ tinyint”形式存储在SubmissionVotes表中,列为“ 1
”,下次投票以-1
存储。
在我的Submission.php
模型中,投票模型具有hasMany关系。
public function votes() {
return $this->hasMany('App\SubmissionVote', 'vote');
}
在刀片模板中,我计算出这些票的总和:
{{ $submission->votes->sum('vote') }}
现在,如果仅支持投票,则可以正常工作。三个投票将获得3分。
但是给定3个减数票和3个增数票,总和应返回0,但是,它返回3。
换句话说,它将-1计为0。
编辑:
奇怪的发展。当我查看$submission->votes
返回的内容时,只会给我带正数的结果。
例如:
[{“ id”:13,“ user_id”:2,“ submission_id”:1,“ vote”:1},{“ id”:22,“ user_id”:3,“ submission_id”:1,“投票”:1}]
答案 0 :(得分:2)
我认为您的问题可能在这里:
public function votes() {
return $this->hasMany('App\SubmissionVote', 'vote');
}
vote
不是外键,它恰好适用于这两个,因为我猜投票是1,提交是1。但是对于负数它将不起作用。
因此,您可能希望将其更改为vote
,而不是不能为外键的submission_id
,
public function votes() {
return $this->hasMany('App\SubmissionVote', 'submission_id');
}
在SubmissionVote模型中,您将拥有:
public function submission() {
return $this->belongsTo('App\Submission');
}