【问题标题】: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)
【发布时间】:2021-11-12 05:58:30
【问题描述】:

未定义的变量: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() 方法中传递数据数组。如果您将return view ('admin.view_category');return view ('admin.view_category', ['blogcat'=&gt;$blogcat]); 进行比较,您会发现不同之处。
  • 另外:@foreach($blogcat as $blogcat) - 你在这里用循环变量覆盖你的数组。

标签: php laravel model-view-controller laravel-8


【解决方案1】:

我在这里发现了两个问题。在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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 2018-07-10
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    相关资源
    最近更新 更多