Я сделал функцию обновления для моего веб-сайта laravel 4.2, который работает. Он обновляет таблицу в базе данных с правильной информацией, но когда я хочу перенаправить на тот же взгляд, что и я, я получаю проблему.Маршрут перенаправления Laravel с переменной id не работает
URL-адрес показывает:
http://localhost:8000/admin/page/%7BpageID%7D
когда он schould сказать:
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
Это из моего контроллера (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'=>'[email protected]'));
Route::post('/admin/page/{pageID}', array('as'=>'page', 'uses'=>'[email protected]'));
Если вам нужно больше информации, просто дайте мне знать.
BTW Вы знаете, как показать переменную «succes» в моем представлении, как показано здесь: с ('succes', 'Du har sendt en besked'); –
Это значение переменной мигает к сеансу, поэтому для доступа к ней вы можете использовать 'Session :: get ('success')'. Если вам нужно проверить, прошла ли переменная перед ее отображением, вы можете иметь условие примерно так: '@if (Session :: has ('success')) {{Session :: get ('success')}} @ endif'. Вы можете просмотреть раздел [Возврат перенаправления с данными Flash] (https://laravel.com/docs/4.2/responses#redirects), а также [Документы сеанса] (https://laravel.com/docs/ 4.2/сеанс) для получения дополнительной информации. – Bogdan