2017-09-06 2 views
1

Mein Fall wie folgt aus:Wie senden Daten mit Get ohne Anzeigeparameter in URL?

Meine Ansicht Klinge Laravel wie folgt aus:

{!! Form::open(['route' => 'shop.payment']) !!} 
    <input type="hidden" name="result_type"> 
    <input type="hidden" name="result_data""> 
    ... 
    <input type="radio" name="payment_method" value="transfer"> 
    .... 
    <checkout-view></checkout-view> 
{!! Form::close() !!} 

Im Hinblick Klinge Laravel existieren vue Bestandteil Kasse Ansicht

Die Komponente wie folgt aus:

<script> 
    export default{ 
     template:'<button @click="checkout" class="btn btn-danger pull-right" type="submit">Checkout</button>', 
     methods: { 
      checkout(e){ 
       if(window.Laravel.hasOwnProperty('auth')) { 
        $('#payment-form').attr('action', '/shop/payment/checkout') 
        return true; 
       } 
       else { 
        $('#payment-form').attr('action', '/shop/detail') 
        $("#payment-form").attr('method', 'get') 
        return true 
       } 
      } 
     }, 
    } 
</script> 

Meine Routen laravel wie folgt:

Route::group(['prefix' => 'shop','as'=>'shop.'], function() { 
    Route::get('detail', function(){ 
     return view('shop.detail'); 
    }); 
}); 

Wenn keine Auth es else und die URL wie folgt ausgeführt werden:

http://myshop.dev/shop/detail?_token=FLFJ7MfWi1DZv88Uzk2lrBgVXLN6Y3WHTpskDIED&result_type=&result_data=&payment_method=transfer

ich entfernen möchte den Parameter, so die URL wie folgt aus:

http://myshop.dev/shop/detail

Ich versuche ändern zu post

Ich ändere, um so zu sein:

$('#payment-form').attr('action', '/shop/detail') 
$("#payment-form").attr('method', 'post') 
return true 

Und

Route::post('detail', function(){ 
    return view('shop.detail'); 
}); 

Aber es funktioniert nicht, gibt es Fehler:

POST http://myshop.dev/shop/detail 405 (Methode nicht erlaubt)

Was ist die richtige Lösung um mein Problem zu lösen?

+0

Also für beide Fälle verwendet Sie Post-Methode, aber das kommt heraus, nicht wahr? –

+0

@Ataur Rahman Munna, was meinst du? Wenn ich "post" verwende, gibt es einen Fehler –

Antwort

0

Sie können es tun, wie diese mit Input und get Methode:

Ansicht

{!! Form::open(['route' => 'shop.payment','method' => 'GET']) !!} 
    <input type="hidden" name="result_type"> 
    <input type="hidden" name="result_data""> 
    ... 
    <input type="radio" name="payment_method" value="transfer"> 
    .... 
    <checkout-view></checkout-view> 
{!! Form::close() !!} 

Strecke

Route::get('/test/route', '[email protected]'); 

-Controller

public function yourFunction(){ 

    $result_type = Input::get('result_type'); 
    $result_data = Input::get('result_date'); 
    ...... 

} 

Ich hoffe, Sie verstehen.

+0

Ich möchte, dass das Formular "post" weiter verwendet. Wenn der Benutzer Gast ist (kein Login), ruft er '/ shop/detail' ohne Parameter in der URL –

+0

@SuccessMan With Post, was ist das Problem dann? –

+0

Sie versuchen, meine Frage zu lesen. Ich habe es im Detail erklärt. Also ich möchte die Aktion ändern, wenn der Benutzer nicht eingeloggt ist –

0
Route::group(['prefix' => 'shop','as'=>'shop.'], function() { 
    Route::get('detail', function(){ 
    return view('shop.detail'); 
    }); 
}); 

Ich glaube, die Route als shopdetail aus kommt, nicht Shop/Detail

Geben Sie den Befehl php artisan route:list zu sehen, wie Laravel die Urls sieht.

0

Verwenden Sie return redirect zu einer anderen Route, anstatt eine Ansicht zurückzugeben, wenn keine Authentifizierung vorhanden ist. Geben Sie in einer anderen Route, auf die Sie umleiten, die ursprüngliche Ansicht zurück, die angezeigt werden soll, wenn kein authentifizierter Benutzer vorhanden ist.