最初に2つのモデルがあります:
class Tutorial extends Eloquent {
protected $table = 'tutorials';
public function rating()
{
return $this->hasMany('Rating');
}
}
と:
class Rating extends Eloquent {
protected $table = 'ratings';
public $timestamps = false;
public function tutorial()
{
return $this->belongsTo('Tutorial');
}
}
今私のコントローラに私はこれを持っています:
public function get_index() {
$tutorials = tutorial::orderBy('created_at', 'desc')
->with('rating')
->paginate(25);
return View::make('site/home/index')->with('tutorials', $tutorials);
}
では、ビュー内の 1 つのチュートリアルからすべての評価を取得するにはどうすればよいでしょうか?!
編集:
今私はこれを持っています:
public function ratings()
{
return $this->hasMany('Rating');
}
public function getRating()
{
// Grab the ratings from this tutorial
$ratings = $this->ratings;
$summedRatings = 0;
// Loop through them all and add them together
foreach($ratings as $rating)
{
console.log($rating->value);
$summedRatings += $rating->value;
}
// Return the calculated average
return $summedRatings / count($ratings);
}
public function get_index() {
$tutorials = Tutorial::with('ratings')
->with('user')
->orderBy('created_at', 'desc')
->paginate(25);
return View::make('site/home/index')->with('tutorials', $tutorials);
}
そして私の見解では:
@foreach($tutorials as $tutorial)
<span>{{$tutorial->rating}}</span>
@endforeach
しかし、すべての < span > は空です!
更新:私がこれを行う場合:
@foreach($tutorials as $tutorial)
@foreach($tutorial->ratings as $rate)
<span>{{$rate->value}}</span>
@endforeach
すべてが良いです....それで、何が問題なのですか?