我已经对我的 laravel 4.2 网站进行了更新,该功能有效。它使用正确的信息更新数据库中的表,但是当我想重定向到与我来自的相同 View 时,我遇到了问题。
网址显示:
http://localhost:8000/admin/page/%7BpageID%7D
什么时候应该说:
http://localhost:8000/admin/page/1
这是一个显示我的浏览器错误的图像的链接:
http://i.imgur.com/ggO5ELg.png
这是我的观点 (admin.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
这是来 self 的 Controller ( PageController ),我在更新功能中有重定向。
<?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 Redirects Documentation 中阅读更多相关信息.
关于php - 带有 id 变量的 Laravel 重定向路由将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34820869/