2016-11-20 15 views
1

こんにちは私は作成フォームの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. 

答えて

2

リダイレクトにURLを渡している::ルート()。

return redirect('/admin/products/create')->with('pageMessage', $pageMessage); 

あなたは、私はそれはあなたがまた、それは非常に簡単だという名前のルートおよび使用設定することができ

return Redirect::to('/admin/products/create')->with('pageMessage', $pageMessage); 

だろうと信じてLaravelの古いバージョンを使用している場合:

Route::post('/admin/products/creating', [ 
    'uses' => '[email protected]', 
    'as' => 'products.create' 
]); 

利点は、アプリケーション全体でルート名を参照できるため、URLのフォーマットを変更する場合は、1つの場所で行うだけです。

+0

。リダイレクトは、私があなたが提案した方法のようにしても動作しますが、{!! pageMes​​sage!}を使用してpageMes​​sage変数を取得することはできません。 – rematnarab

+0

{!! $ pageMes​​sage !!}、あなたはドル記号がありません。 –

+0

これは入力ミスです。それはコードのドル記号である。あなたは上記を見ることができます。 – rematnarab

0

あなたはroute()を使用している場合は代わりに、URLのルート名を使用する必要があります。

return redirect()->route('products.create'); 

ですから、あなたのルートに名前を付けることができます。

Route::get('/admin/products/create', ['as' => 'products.create', 'uses' => '[email protected]']); 

代わりに、あなたがこのようなURLを使用することができます。

return redirect('/admin/products/create'); 
+1

それは良い答えです、私はメモを追加します:ここにあなたが示すようにあなたのルートを命名するのではなく、あなたはそうすることができます: 'Route :: get( '/ admin/products/create'、 'productsController @ createProduct' ) - >名前( 'products.create'); ' – GabMic

0

あなたが定義したRedirect::route()は、 URルートファイル。

それは以下のようにする必要があります:私は私の作成機能やビューを追加した

return Redirect::to('/admin/products/create')->with('pageMessage', $pageMessage); 
関連する問題