Laravel 在视图中取消定义变量

Laravel undefine variable in view

我是 laravel 的新手。使用 5.4 版并尝试搜索但看不到我做错了什么。在我看来,我一直收到 "Undefined variable: post"。我也在做表单模型绑定。手动输入 URL 时模型绑定工作正常。只是无法单击 link 调出编辑视图。

我的路线:

Route::get('test/{id}/edit','TestController@edit');

我的控制器:

public function edit($id)
{
    $post = Post::find($id);

    if(!$post)
        abort(404);
    return view('test/edit')->with('test', $post);
}

我的表格:

{{  Form::model($post, array('route' => array('test.update', $post->id), 'files' => true, 'method' => 'PUT')) }}

您正在将 post 值分配给 'test',因此应该可以使用 $test 而不是 $post 访问。

您可能想改为执行以下两项操作之一:

return view('test/edit')->with('post', $post);

return view('test/edit', ['post' => $post]);

https://laravel.com/docs/5.4/views

您的控制器正在发送一个名为 "test" 的变量,但是您的错误提示您的 blade 文件没有传递给它的 $post 变量。这可以通过在控制器中将 "test" 更改为 "post" 来解决。