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

时间:2016-12-15 10:06:26

标签: php oop laravel-5 model crud

我首先要为新问题道歉。

我正在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>

当我提交表单时,我收到以下异常:

  

UrlGenerator.php第314行中的InvalidArgumentException:   路线[index / view /]未定义。

我已经被困在这里很长一段时间了,我仍然无法弄清楚为什么我没有正确地生成我的路线。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您正在尝试呼叫路线而应该呼叫控制器。这样就可以了解

 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'
    ]);