首页 > 解决方案 > 显示特定餐厅的评论 Laravel

问题描述

我正在尝试在餐厅资料上显示评论和评分。

<div>
    <h1>Reviews</h1>
    @foreach($reviews as $review)
        <hr>
        <div class="row">
            <div class="col-md-12">
                @for ($i=1; $i <= 5 ; $i++)
                    <span class="glyphicon glyphicon-star{{ ($i <= $review->rating) ? '' : '-empty'}}"></span>
                @endfor
                {{ $review->user ? $review->user->name : 'Anonymous'}}
                <p>{{{$review->value}}}</p>
            </div>
        </div>
    @endforeach
</div>

错误

未定义变量:reviews(查看:C:\xampp\htdocs\restaurantFinder\resources\views\restaurants\viewer.blade.php)

评论控制器

class ReviewsController extends Controller
{
    public function index()
    {
        //
    }

    public function create()
    {
        //
    }

    public function store(Request $request)
    {
        if (!Auth::check()) {
            return redirect('/index');
        }

        $review = new Review;
        $review->user_id = auth()->user()->id;
        $review->restaurant_id = $request->get('restaurant_id');
        $review->value = $request->input('value');
        $review->rating = $request->input('rating');
        $review->save();
    }

    public function show($restaurant)
    {
        // $restaurant=Restaurant::find($id); 

        return view('restaurants.review', compact('restaurant'));
    }

    public function edit($id)
    {
        //
    }

    public function update(Request $request, $id)
    {
        //
    }

    public function destroy($id)
    {
        //
    }
}

标签: laravel

解决方案


更新您的ReviewController.php

public function show($restaurantID)
{
$reviews = Reviews::find($restaurantID); // Find all reviews model by restaurantID
return view('viewer',compact('reviews ')); // This will do $reviews = reviews
// now you can foreach over reviews in your blade
}

这个链接很有用


推荐阅读