Ich bin ratlos. Ich arbeite daran, eine Anwendung auf Laravel 5.4 zu aktualisieren, aber auf dem Weg (5.2.45) habe ich etwas Seltsames mit mehreren Routen zu tun. Ich hatte 3 Route::controller()
Anrufe in routes.php
, und ich habe sie alle in explizite Routen umgewandelt, seit ::controller()
gelöscht wurde. Jetzt funktionieren die neuen Routen von einem der ::controller()
Anrufe gut, die Routen von den anderen beiden sind nicht, Meldung Aktion nicht gefunden.Controller-Aktionen in "Handwerker Route: Liste" als Closures
an Beispielen suchen, ist hier eine, die funktioniert:
\Route::get('account/edit', array('as'=>'account.edit', 'uses'=>'[email protected]'));
und hier ist eine, die nicht ist:
\Route::get('recent/clear', array('as'=>'recent.clear', 'use'=>'[email protected]'));
Der Vollständigkeit halber, hier sind die geltenden Steuerabschnitte
class AccountController extends Controller {
public function getEdit()
{
$roles = Role::getSelectList();
$districts = District::getSelectList();
return \View::make('accountedit', array('editUser' => \Auth::user(), 'roles'=>$roles, 'districts'=>$districts));
}
}
class RecentController extends Controller {
public function getClear()
{
\Session::forget('recent');
return \Redirect::to('/main')->with(array('alerts'=>array(ErrorHelper::alert('success','Success','The Recent list has been cleared.'))));
}
}
Das direkteste Zeichen, etwas komisches vor sich geht, ist, wenn ich artisan route:list
laufen lasse. Hier sind die beiden geltenden Linien aus den Ergebnissen:
| Method | URI | Name | Action |
+-----------+---------------+---------------------------------+-------------------------------------------------+
| GET|HEAD | account/edit | account.edit | App\Http\Controllers\[email protected] |
| GET|HEAD | recent/clear | recent.clear | Closure |
Ich habe keine Ahnung, warum recent.clear
als Verschluss zeigt nach oben. Irgendwelche Gedanken, was falsch ist? FWIW, ich habe auf beiden Controllern identische Namespaces, die sich beide im Verzeichnis Http \ Controllers befinden.