Я не могу понять, как отобразить имя маршрута в шаблоне лезвия ларавеля. Ниже приведен пример кода. Спасибо.
от контроллера (StaffsController.php)
public function index()
{
$thisRoute = Route::current()->uri();
return view('staff.list')>with(compact('thisRoute'));
}
Лезвие:
{{ $thisRoute }}
Это var_dump
/home/vagrant/Code/spark/app/Http/Controllers/StaffsController.php:20:string 'staffs' (length=6)
Ошибка:
(1/1) UnexpectedValueException
The Response content must be a string or object implementing __toString(), "boolean" given.
Когда я меняю код в контроллере на:
public function index()
{
$thisRoute = Route::current()->uri();
return dd($thisRoute);
}
Я получаю "staffs" как вывод, который является правильным, который является строкой из дампа, не так ли?
Извините, ребята, я решил проблему. Я пропустил -
в представлении return view('staff.list')>with(compact('thisRoute'));
линии return view('staff.list')>with(compact('thisRoute'));
Изменил
return view('staff.list')->with(compact('thisRoute'));
Я допустил ошибку.
Спасибо
return view('staff.list', compact('thisRoute'));
измените свой оператор return следующим образом:
return view('staff.list', compact('thisRoute'));
если вы используете laravel 5.3 или выше, вы можете получить название маршрута следующим образом:
Route::currentRouteName();
с этим вам действительно не нужно разбирать его с вашего контроллера на вид, просто используйте его прямо с вашего вида блейда:
{{ Route::currentRouteName() }}
$thisRoute = Route::currentRouteName(); return view('staff.list')>with(compact('thisRoute'));
но все же получил ту же ошибку
dd
вы используетеRoute::current()->uri()
а в первом примере простоRoute::current();
?