LINUX.ORG.RU

Не получается использовать контроллер из подкаталога в Laravel 5.5

 , ,


0

1

Что-то я совсем в пятницу вечером затупил.

Вот есть у меня контроллер который лежит по такому пути:

/app/Http/Controllers/MoveController.php


И я могу его использовать так:

Route::get('/home', 'MoveController@index')->name('home');


Но мне нужно разместить этот контроллер в подкаталоге. Я перемещаю его в подкаталог personalArea:

/app/Http/Controllers/personalArea/MoveController.php


И пробую его использовать так:

Route::get('/home', 'personalArea\MoveController@index')->name('home');


И мне в ответ ошибка:

Class App\Http\Controllers\personalArea\MoveController does not exist


Я пробовал в качестве разделителя и "." и «/», но толку никакого. В чем проблема?

★★★★★
Ответ на: комментарий от goingUp

namespace App\Http\Controllers\personalArea
в файле контроллера?

Да, вот так:

// namespace App\Http\Controllers;
namespace App\Http\Controllers\personalArea;

use Illuminate\Http\Request;

class MoveController extends Controller
{
   ...


Не забудь потом composer dump-autoload

Да, сделал.

Ошибка поменялась, и стала такой:

Class 'App\Http\Controllers\personalArea\Controller' not found


Да, роут все тот же:

Route::get('/home', 'personalArea\MoveController@index')->name('home');

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

У тебя уже другая ошибка

class MoveController extends Controller
extends Controller
Class 'App\Http\Controllers\personalArea\Controller' not found

Намек понятен?

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

У тебя уже другая ошибка
class MoveController extends Controller
extends Controller
Class 'App\Http\Controllers\personalArea\Controller' not found

С чего ты взял что у меня такая ошибка? У меня вот такая ошибка, если полностью:

Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_UNKNOWN)
Class 'App\Http\Controllers\personalArea\Controller' not found


Намек понятен?

Нет.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

У тебя написано «extends Controller». Класса Controller в текущем неймспейсе нету, о чем и ошибка. Нужно добавить use

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Да конечно я и так пробовал:

namespace App\Http\Controllers;
namespace App\Http\Controllers\personalArea;

use Illuminate\Http\Request;

class MoveController extends Controller
{

Ошибка все та же.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Так оно заработало. Но я не пойму, почему когда прописано

namespace App\Http\Controllers;

не нужно делать

use Illuminate\Routing\Controller;

?

Где увидеть, что в namespace App\Http\Controllers есть класс Controller?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Да, и еще. Почему у тебя такая развернутая ошибка:

class MoveController extends Controller
extends Controller
Class 'App\Http\Controllers\personalArea\Controller' not found

А в моем случае такая угребищная?

У меня PHP 7.0.33-0+deb9u3 если что.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Где увидеть, что в namespace App\Http\Controllers есть класс Controller?

Скорее всего в папке App/Http/Controllers у тебя есть класс Controller, который наследует Illuminate\Routing\Controller.

Почему у тебя такая развернутая ошибка

Это не ошибка, я просто процитировал куски твоего сообщения.

goingUp ★★★★★
()

Парень, чёрт возьми, просто почитай учебник по пыху. Ты же вон вроде на плюсах пишешь, и даже книжечка по ним на столе лежит, учил значит, и учил думаю ни как не с наскоку.

xSudo ★★★
()
Ответ на: комментарий от xSudo

Да я читал пару лет назад, все тогдашние ПСР до 4-й, но за ненадобностью все забылось напрочь, хотя там немного на самом деле. Щас потихоньку восстанавливаюсь, но ведь проект тоже надо пилить, а инфы переварить приходится до жопы: композер, npm, конфиг nginx, iptables, artisan, bootstrap, vue, jQuery, чо там в 7-м php напридумывали, структура laravel, компоненты, фасады, миграции, черт лысый... Сущностей новых вагон, несколько тем параллельно приходится укладывать в голову.

Сейчас жду бумажные книги, потому что с экрана плохо воспринимаю, а те что есть устарели. Для восприятия теории и всяких идеологических вещей мне только бумага подходит.

Xintrea ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.