Laravel redirect() 没有生成正确的 url

Laravel redirect() to is not generating the correct url

首先,我想为这个新问题道歉。

我正在 Laravel 上制作一个简单的 CRUD 控制器。

我的创建方法如下:

 public function create(Request $request)
{
    $dummy = new Dummy();
    $dummy->title = $request->title;
    $dummy->content = $request->dummy_content;
    $dummy->created_at = new \DateTime();
    $dummy->updated_at = new \DateTime();
    $dummy->save();

    return redirect()
        ->route('index/view/', ['id' => $dummy->id])
        ->with('message', 'Dummy created successfully');
}

我的查看方式:

public function view($id)
{

    $dummy = Dummy::find($id);

    return view('index/view', [
        'dummy' => $dummy
    ]);
}

我对应的路线:

Route::get('index/view/{id}', 'IndexController@view');
Route::post('index/create', 'IndexController@create');

和我的表格:

<form action="create" method="post">
    {{ csrf_field() }}
    <div class="form-group">
        <label for="title">Title</label>
        <input type="text" name="title" class="form-control">
    </div>
    <div class="form-group">
        <label for="content">Content</label>
        <textarea name="dummy_content"  cols="80" rows="5" class="form-control"></textarea>
    </div>
    <button type="submit" class="btn btn-default btn-sm">Submit</button>
</form>

当我提交表单时出现以下异常:

InvalidArgumentException in UrlGenerator.php line 314: Route [index/view/] not defined.

我被困在这里已经有一段时间了,但我仍然不明白为什么我没有正确生成我的路线。

我错过了什么?

您正在尝试调用路由,而您应该调用控制器。这样就可以了

 return redirect()->action('IndexController@view', ['id' => $id])->with($stuff);

此外,我建议您为路由定义别名,这样您就可以做类似

的事情

在你的控制器中:

 return Redirect::route('route_alias', ['id' => $id])->with($stuff);

在你的路线中:

Route::get('/index/view/{id}', [
        'as' => 'route_alias',
        'uses' => 'IndexController@view'
    ]);