2 回答

TA貢獻1813條經驗 獲得超2個贊
你好,你能測試一下嗎:
$mostRatedRestaurants = Restaurant::App\Menu::find(1);
$mostRatedRestaurants->where('status', 1)->get();
問候

TA貢獻1898條經驗 獲得超8個贊
解決了,謝謝各位。
我是創建方法
public function getAvgRate($mostRatedRestaurants){
foreach ($mostRatedRestaurants as $mostRatedRestaurant){
$ratedRestaurant = 0;
$countMenuHasRate = 0;
$avgRateRestaurant = 0;
foreach($mostRatedRestaurant->menus as $menu){
// ??? ??????? ??????
$countReviewForMenu = count($menu->reviews);
$rate = 0;
foreach($menu->reviews as $reviews){
$rate += $reviews->rate;
}
if(count($menu->reviews) !== 0){
$rateForMenu = round($rate/$countReviewForMenu); // rate Menu;
$countMenuHasRate += 1;
$ratedRestaurant += $rateForMenu;
}
}
if($ratedRestaurant !== 0) {
$avgRateRestaurant = round($ratedRestaurant / $countMenuHasRate);
}
$mostRatedRestaurant['rate'] = $avgRateRestaurant ?? 0;
}
return $mostRatedRestaurants;
} // End Method getAvgRate
和內部方法索引
$mostRatedRestaurants = Restaurant::where('status', 1)->with('profileImage', 'menus')->get();
$mostRatedRestaurants = $this->getAvgRate($mostRatedRestaurants); // Add Rate
$mostRatedRestaurants = $mostRatedRestaurants->sortByDesc('rate')->take('9'); // Sort Rate
return view('user.content.restaurant.index', compact('mostRatedRestaurants'));
在刀片中 用于回波率
@php
$rate = 5 - $mostRatedRestaurant->rate;
@endphp
@for ($i = 1; $i <= $rate; $i++)
<li class="far fa-star text-secondary float-left text-left"></li>
@endfor
@php
$rate = $mostRatedRestaurant->rate;
@endphp
@for ($i = 1; $i <= $rate; $i++)
<li class="fa fa-star"></li>
@endfor
你可以改進代碼再次感謝。
- 2 回答
- 0 關注
- 123 瀏覽
添加回答
舉報