2017-05-17 5 views
1

Ich bin verwirrt oder in der Sonne zu viel gewesen, ich habe die Situation nach wenn Bearbeitung eines ProduktsLaravel senden URL-Parameter als versteckte Eingang

http://app.dev/shops/1/products/2/edit 

Ich fügte hinzu, die/Läden/1 in der URL, weil ich wissen muss, für welchen Shop ich das Produkt bearbeite.

Jetzt in der Controller Ich muss wissen, was Shop und Produkt wir hier reden. Ich verwende das folgende versteckte Eingabefeld des product_id zum Update-Controller zu senden

<input type="hidden" name="product" value="{{ $product->id }}"> 

Aber wie bekomme ich die Arbeitsplatz_id zum Update-Controller. Was ist der beste Weg, dies zu tun?

Vielen Dank!

+0

und –

+0

Produkt und Shop-Werte in der Steuerung erhalten die $ Shop Variable @BilalAhmed ist nicht verfügbar in dieser Ansicht. Es ist eine Produktansicht bearbeiten. – Notflip

Antwort

1

Laravel Weg

{{ Request::segment(3) }} 

erhalten Sie die ID geben und Sie können es entweder in versteckten Eingang passieren oder wie Sie wollen

PHP Weg

$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 

$shop = explode('/', $actual_link); 
$shop_id = $shop[1/2/3 or 4]; 

// je nachdem in welcher Position Die Shop-ID wird angezeigt, Sie können sie durch Drucken überprüfen $shop

+0

Ich habe das Gefühl, dass bei der Verwendung der Request :: -Segments meine Daten falsch sind oder meine URL nicht korrekt erstellt wird. scheint nicht Best Practice, weiß nicht, warum – Notflip

+0

ok, so dass Sie etwas anderes brauchen, weil Sie das nicht mögen? Ich habe auch andere Optionen. – Exprator

+0

bearbeitet meine ans, überprüfen Sie, ob es Ihnen gefällt – Exprator

2

Route f ile

Route::get('/shops/{shopid}/products/{productid}' , '[email protected]'); 

In Controller

Input::get('shops'); 
Input::get('products'); 

und dies auch überprüfen

Route::get('/', function(){ 

    echo Input::get('shops'); 
    echo Input::get('products'); 
}); 
0

So haben Sie eine Route ähnlich wie diese

Route::post('/shops/{shop_id}/products/{product_id}/edit' , '[email protected]'); 

Und in Ihrem Controller Sie können einfach benutzen. Jetzt haben Sie beide IDs und können tun, was Sie wollen.

public function edit($shop_id, $product_id) { 
    //do what you want 
} 
Verwandte Themen