未定义变量:blogcat(查看:/home/techpriest/joseph/resources/views/admin/view_category.blade.php)

Undefined variable: blogcat (View: /home/techpriest/joseph/resources/views/admin/view_category.blade.php)

未定义的变量:blogcat(查看:/home/techpriest/joseph/resources/views/admin/view_category.blade.php)这是我在 laravel 8 中的错误消息,但当我查看我的代码时,一切似乎都很好。 这是我的代码。

管理员控制器

public function addBlogCat (Request $request){
        if ($request->isMethod('post')) {
            $data = $request->all();
            $blogcat = new Foliocategories;
            $blogcat->name = $data['category_name'];
            $blogcat->save();
            return redirect ('/blog/categories');
        }
        return view ('admin.view_category');
    }
    public function viewBlogCat (){
        $blogcat = DB::select('select * from foliocategories');
        return view ('admin.view_category', ['blogcat'=>$blogcat]);
    }

这是我的观点;

    @foreach($blogcat as $blogcat)
                                    <tr>
                                        <td>{{ $blogcat->id }}</td>
                                        <td>{{ $blogcat->name }}</td>
                                        <td>{{ $blogcat->created_at }}</td>
                                        <td><span class="badge badge-danger">Due</span></td>
                                        <td class="action h4">
                                            <div class="table-action-buttons">
                                                <a class="edit button button-box button-xs button-info" href="#"><i class="zmdi zmdi-edit"></i></a>
                                                <a class="delete button button-box button-xs button-danger" href="#"><i class="zmdi zmdi-delete"></i></a>
                                            </div>
                                        </td>
                                    </tr>
                                    @endforeach

我在这里发现了两个问题。在 addBlogCat 操作中,您没有注入任何博客类别。 viewBlogCat 还不错,但在视图中,您正在使用带有模型实例的循环。

重写代码怎么样,让我们​​使用完整有意义的变量名:

public function addBlogCategory(Request $request)
{
    if ($request->isMethod('post')) {
        $data = $request->all();
        Foliocategories::create(['name' => $request->input('category_name')]);

            return redirect ('/blog/categories');
    }

    return view ('admin.view_category', [
        'blogCatogories' => Foliocategories::all();
    ]);
}
    
public function viewBlogCategories()
{
    $blogCategories = Foliocategories::all();
    return view ('admin.view_category', compact('blogCategories'));
}

然后在视图中:

@foreach($blogCategories as $blogCategory)
    <tr>
        <td>{{ $blogCategory->id }}</td>
        <td>{{ $blogCategory->name }}</td>
        <td>{{ $blogCategory->created_at }}</td>
    </tr>
@endforeach