@sawa4

Почему в виде не видит метод котроллера если контроллер в переменной. Ошибка ErrorException in UrlGenerator.php?

Hello, guys!
Есть такой кусок кода:
//где то в котроллере 
$controllerName = get_class($this);
//во view
<a href="{{ action ($controllerName.'@getPart',  array($obj->id, 'main')) }}">

Он не работает, хотя видит класс контроллера и там явно есть этот метод:

ErrorException in UrlGenerator.php line 609:
Action App\Http\Controllers\App\Http\Controllers\NameController@getPart not defined. (View: ...

А если писать так:
<a href="{{ action ('NameController@getPart',  array($obj->id, 'main')) }}">

То все работает.
Кто нибудь сталкивался с таким? Есть идеи?
  • Вопрос задан
  • 416 просмотров
Пригласить эксперта
Ответы на вопрос 3
abler98
@abler98
Software Engineer
Потому что get_class возвращает полное имя класса (вместе с namespace). И зачем вообще так делать?
Ответ написан
Комментировать
DJZT
@DJZT
Laravel - code for you
Обратите внимание на это

Action App\Http\Controllers\App\Http\Controllers\NameController@getPart
Ответ написан
xpert13
@xpert13
Full Stack Developer
Есть идеи?

Есть - не вызывайте методы контроллера из вьюх. То как вы хотите сделать не "MVC way".

Если я правильно понимаю ваш код - то вам нужно использовать route вместо action и передавать соответственно имя роута, чтобы получить ссылку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы