重定向错误laravel
问题描述:
你好,我为我的创建表单使用createProduct页面。在我创建了一个产品后,我想用参数重定向到同一页面。你能帮我解决以下错误吗?重定向错误laravel
web.php
Route::get('/admin/products/create','[email protected]');
Route::post('/admin/products/creating','[email protected]');
创建功能
public function creatingProduct(){
$product = new Product();
$product->name = Input::get('name');
$product->description = Input::get('description');
$product->price = Input::get('price');
$categories = Category::all();
try {
$product->save();
$pageMessage = prepareMessage("alert-success","Yahoooo!!","Eklendiii");
} catch (\Illuminate\Database\QueryException $e) {
$pageMessage = prepareMessage("alert-danger","Üzgünüz!!","Ürününüz eklenemedi");
}
// return view('admin.createProduct',compact('categories','pageMessage'));
return Redirect::route('/admin/products/create')->with('pageMessage', $pageMessage);
}
创建功能
public function createProduct(){
$categories = Category::all();
return view('admin.createProduct',compact('categories'));
}
createProduct.bladde.php
@if(isset($pageMessage))
{!!$pageMessage!!}
@endif
<form class="well form-horizontal" action=" {{url('admin/products/creating')}}" method="POST" id="contact_form">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<!--{{ Form::open(['url' => '/admin/products/create', 'files' => true]) }}-->
<div class="form-group">
<label class="col-md-4 control-label">Ürün İsmi</label>
<div class="col-md-8 inputGroupContainer">
ERROR
InvalidArgumentException in UrlGenerator.php line 314:
Route [/admin/products/create] not defined.
答
你传递一个URL重定向到::路线(),它需要一个路由的名称来代替。
return redirect('/admin/products/create')->with('pageMessage', $pageMessage);
如果您使用Laravel的旧版本,我相信这将是
return Redirect::to('/admin/products/create')->with('pageMessage', $pageMessage);
你可以设置一个名为路线和使用也,这是相当简单:
Route::post('/admin/products/creating', [
'uses' => '[email protected]',
'as' => 'products.create'
]);
好处是,您可以在整个应用程序中引用路径名称,并且如果您决定更改URL的格式,则只需在一个位置执行该操作。
答
如果你使用route()
您应该使用路径名称,而不是网址:
return redirect()->route('products.create');
所以,你能说出你的路线:
Route::get('/admin/products/create', ['as' => 'products.create', 'uses' => '[email protected]']);
作为替代方案,您可以使用网址如下:
return redirect('/admin/products/create');
+1
这是一个很好的答案,我将添加一个注释:不是按照您在此显示的方式命名路线,您可以这样做:Route :: get('/ admin/products/create','productsController @ createProduct' ) - >名称( 'products.create');' – GabMic
答
您定义了Redirect::route()
这是不是你在里面定义你哟你的路线文件。
应该象下面这样:
return Redirect::to('/admin/products/create')->with('pageMessage', $pageMessage);
我已经加了我创造的功能和视图。重定向的作品,如果我这样做,就像你建议的方式,但我无法使用{!! pageMessage !!} – rematnarab
使用{! $ pageMessage !!},你错过了美元符号。 –
这是一个打字错误。代码中带有美元符号。你可以看到上面。 – rematnarab