Laravel 10 中将 $project 作为控制器路径中的参数传递时未定义变量 $project

问题描述 投票:0回答:1

我的 ProjectsController 中有一小段代码,应该显示数据库中的所有项目(是的,模型是小写的):

public function index(): View
    {
        $projects = project::all();

        return view('projects', ['projects', $projects]);
    }

然后它被发送到projects.blade.php 文件。在文件的更下方,我有一个应该从数据库加载信息的表。它使用 foreach 循环来显示数据库中的所有条目。

                @foreach($project as $projects)
                    <tr>
                        <td>Project_id</td>
                        <td>User_id</td>
                        <td>Title</td>
                        <td>Picture URL</td>
                        <td>Description</td>
                        <td>Explanation</td>
                        <td></td>
                        <td></td>
                    </tr>
                    <tr>
                        <td>{{ $project->id }}</td>
                        <td>{{ $project->users_id}}</td>
                        <td>{{ $project->title }}</td>
                        <td>{{ $project->picture_url }}</td>
                        <td>{{ $project->description }}</td>
                        <td>{{ $project->explanation }}</td>
                        <td> <a href="{{ route('ProjectsController.update', $project->id)  }}">Edit</a> </td>
                        <td> <form method="POST" action="{{ route('ProjectsController.delete', [$project->id]) }}">
                                @csrf
                                @method('DELETE')
                                <button type="submit">Delete</button>
                            </form>
                        </td>
                    </tr>

我不断收到错误“未定义变量 $project”。它在代码编辑器中显示为“null”,因此与此刀片中的 $project 相关的所有内容都不再起作用。我已经尝试了多种方法,从重命名变量到返回 git 中的提交,该提交确实有效,但似乎没有任何解决方案。关于如何修复有什么想法吗?在控制器中,它并没有说 is null。

php laravel null undefined
1个回答
0
投票

您的

foreach
中的变量已切换。

你有:

@foreach($project as $projects)

您需要:

@foreach($projects as $project)
© www.soinside.com 2019 - 2024. All rights reserved.