Laravel routing: wie übergibt man parameter controller (nicht über die URL)?
Habe ich zwei Routen: A/{param}/C
und B/{param}/C
. Auch ich habe einen controller mit der Methode:
public function index($param, $param1 = false)
{
//...
}
Im Falle von A/{param}/C
ich pass nur ein parameter - angegeben in der URL und verwendet die Funktion den Standardwert für die zweite. Bei der zweiten route, möchte ich weitergeben true
als zweiten parameter. Da es nicht in der URL angegebenen, wie Sie übergeben Sie an die Funktion?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich Sie richtig verstehe, ohne Verwendung von $_POST, Sie werden nicht in der Lage ein parameter übergeben werden, ohne sein Wesen irgendwo in der URI (außerhalb der Einstellung, eine session-variable, die ich nicht beraten)
Andere option könnte sein, übergeben Sie es als query-string-parameter. Es wird immer noch in der url, aber nicht notwendigerweise gefangen in der route-Muster
URLs:
--
Controller:
--
Alternativ, wenn Sie möchten, eine freundliche URL, können Sie ein Fragezeichen nach Ihrem zweiten parameter, der angibt, dass es möglicherweise oder möglicherweise nicht vorhanden. Diese entsprechen beide der folgenden URLs
URL:
Route:
Controller:
index
Methode für beide. Könnten SieRoute::get('A/{param}/C', 'YourController@index');
wo$param1
eingestellt istfalse
, dann eine zweite route zeigt auf eine andere MethodeRoute::get('B/{param}/C', 'YourController@index2');
wo$param1
auf true gesetzt ist. Halten Sie Ihren code TROCKENEN, könnten Sie müssen nur eine Zeile code inindex2
aufrufenindex
übergebentrue
return $this->index($param, true);