2016-07-25 17 views
0

Ich möchte eine Variable aus meiner Routes-Datei an den angegebenen Controller übergeben. Keine Verwendung von Parametern, da die Informationen nicht in der URL enthalten sind. Ich kann keinen Weg finden, um es unter Verwendung des folgenden Codes zu übergeben.Daten von einer Route an einen Controller übergeben [Laravel]

Route::get('faqs', [ 
    'as' => 'thing', 
    'uses' => '[email protected]', 
]); 

Ich weiß, dass Sie auch an einem Controller umleiten können, aber der Fehler sagt, dass die Methode nicht existiert und nach der Suche fand ich, dass der Controller auf eine Route zugewiesen werden mußte und danach war es immer noch die gleiche Fehler aber an einem anderen Ort.

Irgendwelche Gedanken?

+0

Diese Frage macht nicht viel Sinn aus einer MVC Perspektive. Die routes-Datei definiert nur Routen, sie sollte nicht daran interessiert sein, Variablen an Controller zu übergeben (außerhalb von URL-Parametern). Wenn Sie eine Art von Logik innerhalb dieser Routen-Datei bearbeiten, die an den Controller übergeben wird, wäre das wahrscheinlich besser in einer Middleware platziert. Ich denke, wenn Sie das zugrundeliegende Problem oder die Sache, die Sie versuchen zu erreichen, die Parameter in der Datei routes erfordert, können wir in der Lage sein, einen besseren Weg zu finden. – user3158900

+0

Mit GET-Anfrage können Sie nur Daten als Parameter übergeben, ansonsten können Sie mit POTS alle Daten übergeben, aber ein Formular oder JS verwenden. Können Sie erklären, welche Daten Sie weitergeben möchten, und mehr Details darüber geben, was Sie auf diese Weise vorhaben? – TheFallen

+1

Wenn Sie keine Funktionsparameter oder Eingangsparameter verwenden, wie wird der Controller auf die Daten zugreifen? – apokryfos

Antwort

0

Eine Möglichkeit, dies zu erreichen, besteht darin, benutzerdefinierte middleware zu erstellen, indem Sie Ihre benutzerdefinierten Felder zur Eigenschaft attributes hinzufügen.

So würden Sie tun;

$request->attributes->add(['customVariable' => 'myValue']); 
0

Sie können die Routen verwenden :: bind Wertes für

spezifisches Slug zuweisen
Route::bind('parameter', function($parameter) 
{ 
    return SomeModel::where('name',$parameter)->first(); 
}); 

Route::get('faqs/{parameter}', [ 
    'as' => 'thing', 
    'uses' => '[email protected]', 
]); 

Und in Ihrem Controller

dies als Methode Parametersatz
public function method(SomeModel $model) 
{ 
    dd($model); 
} 
Verwandte Themen