So implementieren Sie eine unbegrenzte Anzahl von Parametern im Laravel-Routing

小云云
Freigeben: 2023-03-17 20:52:02
Original
1933 Leute haben es durchsucht

In diesem Artikel erfahren Sie, wie Sie eine nicht feste Anzahl von Parametern im Laravel-Routing implementieren. Ich hoffe, dass der Artikel darauf verweisen kann allen helfen.

... Wofür werden diese drei Punkte verwendet? Ich habe im PHP-Handbuch nachgeschaut und herausgefunden, dass es sich bei diesem Ding um eine variable Anzahl von Parameterlisten handelt.

Wofür ist das? Das PHP-Handbuch erklärt es so.

... ist eine Parameterliste, die eine variable Anzahl von Parametern in einer benutzerdefinierten Funktion unterstützt.

... Verfügbar in PHP 5.6 und höher. Verwenden Sie in PHP 5.5 und früher die Funktionen func_num_args() , func_get_arg() und func_get_args() .

Eine variable Anzahl von Parameterlisten, dieses Konzept mag Ihnen abstrakt erscheinen.

Wir können es so verstehen: Wir haben eine Funktion oder eine bestimmte Funktion angepasst, aber die Anzahl der Parameter dieser Funktion ist nicht festgelegt, es handelt sich um eine variable Anzahl von Parameterlisten.

Bezüglich der variablen Anzahl von Argumentlisten schauen wir uns zwei Beispiele an:

<?php
function sum(...$numbers) {
 $acc = 0;
 foreach ($numbers as $n) {
  $acc += $n;
 }
 return $acc;
}
echo sum(1, 2, 3, 4);
?>
Nach dem Login kopieren

Oben: Die Routine wird Ausgabe:

10

Eine variable Anzahl von Argumenten wird an die Funktion übergeben und die angegebene Argumentvariable ist ein Array.

Sehen wir uns ein weiteres Beispiel an:

<?php
function add($a, $b) {
 return $a + $b;
}
echo add(...[1, 2])
?>
Nach dem Login kopieren

Die obige Routine gibt Folgendes aus:

3

Eine variable Anzahl von Parametern wird an die Funktion übergeben und das angegebene Array wird als Parametervariable verwendet.

Was hat diese variable Anzahl von Parametern mit dem Laravel-Routing zu tun?

In Laravel können wir das Routing sehr frei anpassen, wie zum Beispiel:

Route::get(&#39;user/{id}&#39;, &#39;UsersController@filter&#39;);
//路由对应的方法
public function filter($id)
{
 # code...
}
Nach dem Login kopieren

Vielleicht ist das möglich:

Route::get(&#39;user/{id}/{name}&#39;, &#39;UsersController@filter&#39;);
//路由对应的方法
public function filter($id, $name)
{
 # code...
}
Nach dem Login kopieren

Es gibt keine feste Anzahl von Parametern im Laravel-Routing, im Code ist es Wie ist es erreicht? Es wird eine variable Anzahl von Parametern verwendet.

// */vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php
/**
 * Dispatch a request to a given controller and method.
 *
 * @param \Illuminate\Routing\Route $route
 * @param mixed $controller
 * @param string $method
 * @return mixed
 */
public function dispatch(Route $route, $controller, $method)
{
 $parameters = $this->resolveClassMethodDependencies(
  $route->parametersWithoutNulls(), $controller, $method
 );
 if (method_exists($controller, &#39;callAction&#39;)) {
  return $controller->callAction($method, $parameters);
 }
 return $controller->{$method}(...array_values($parameters));
}
Nach dem Login kopieren

Ich muss die Klarheit des Geistes des Laravel-Autors Taylor bewundern!

Hast du es schon gelernt? Beeilen Sie sich und probieren Sie es aus.

Verwandte Empfehlungen:

Detaillierte Schritte zur Datenmigration und Datenfüllung in Laravel

Methode zur Leistungsoptimierung des Laravel-Frameworks

Detaillierte Erklärung der Blade-Template-Engine in Laravel

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine unbegrenzte Anzahl von Parametern im Laravel-Routing. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!