带有 id 变量的 Laravel 重定向路由不起作用


Laravel redirect route with id variable won't work

我已经为我的 laravel 4.2 网站制作了一个更新功能,该功能可以工作。它使用正确的信息更新数据库中的表,但是当我想重定向到与我来自的相同视图时,我遇到了问题。

网址显示:

http://localhost:8000/admin/page/%7BpageID%7D

当它说:

http://localhost:8000/admin/page/1

这是指向显示浏览器中错误的图像的链接:

https://i.stack.imgur.com/Cy6mO.png

这是从我的角度来看 ( 管理员.pages )

@section('content')
    <div class='box box-info'>
        <form method="post" action="/admin/page/{{$page->id}}">
    <div class='box-header'>
            <div class='box-body pad'>
                <input type="text" name="title" value="{{$page->title}}" class="form-control">
            </div>
    </div>
        <div class='box-body pad'>
            <textarea id="editor1" name="text" rows="2" cols="80">
                {{ $page->text }}
            </textarea>
            <br>
            <input type="submit" class="btn btn-primary" value="Opdater">
        </div>
        </form>
    </div>
@stop

这是来自我的控制器(页面控制器),我在更新功能中有重定向。

<?php
class PageController extends BaseController {
    public function index($pageID)
    {
        $data['pageID'] = $pageID;
        $page = Page::find($pageID);
        return View::make('admin.pages', $data)
            ->with(compact('page'));
    }
    public function update($pageID)
    {
        DB::table('pages')
            ->where('id', $pageID)
            ->update(array(
                'title' => Input::get('title'),
                'text' => Input::get('text')));
        return Redirect::route('page')->with('succes', 'Du har sendt en besked');
    }
}

这是我在这种情况下使用的两条路线

Route::get('/admin/page/{pageID}', array('as'=>'page', 'uses'=>'PageController@index'));
Route::post('/admin/page/{pageID}', array('as'=>'page', 'uses'=>'PageController@update'));

如果您需要更多信息,请告诉我。

page路由需要一个名为 {pageID} 的参数,重定向时需要传递该参数:

return Redirect::route('page', ['pageID' => $pageID])->with('succes', 'Du har sendt en besked');

您可以在 Laravel 重定向文档中阅读有关此内容的更多信息。