Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет,
Нашел на 4й ветке как разделить приложение на backend/frontend и пытаюсь разделить аналогично в laravel 5.5.3
и для этого в routes/web.php пишу :
Route::get('/admin/category/index', 'Admin\CategoryController@index');
Переместил файл app/Http/Controllers/CategoryController.php в свежесозданную папку app/Http/Controllers/Admin/ и получил файл app/Http/Controllers/Admin/CategoryController.php
и в нем заменил namespace:
//namespace App\Http\Controllers;
namespace Admin;
use App\Http\Controllers\MyAppController;
...
class CategoryController extends MyAppController
{
public function __construct()
{
...
Оставил файл app/Http/Controllers/MyAppController.php на месте - ( я хочу чтобы все мои контролы и фронтенда и бекэнда наследовались от него ) с заголовком :
<?php
namespace App\Http\Controllers;
//namespace Admin;
use Route;
...
class MyAppController extends Controller
{
protected $current_admin_template;
...
И получил ошибку :
ErrorException (E_WARNING)include(.../app/Http/Controllers/Controller.php): failed to open stream: No such file or directory
В чем ошибка и как ее исправить?
Спасибо!
Не в сети
Он тебе говорит о том, что файла app/Http/Controllers/Controller.php нет.
Не в сети
Блин, это я пытался запустить и осталась ссылка на несуществующий файл
Удалив его пробую сначала :
В routes/web.php
Route::get('/admin/category', 'Admin\CategoryController@index');
И есть файл app/Http/Controllers/Admin/CategoryController.php
с заголовком :
<?php
//namespace App\Http\Controllers;
//namespace App\Http\Admin\Controllers;
namespace Admin;
use App\Http\Controllers\MyAppController;
use DB;
use Auth;
use Illuminate\Http\Request;
use App\User;
use App\Category;
use Illuminate\Support\Facades\Gate;
use App\library\ListingReturnData;
class CategoryController extends MyAppController
{
public function __construct()
{
parent::__construct();
...
}
И ошибка в логе:
[2017-10-07 13:54:39] local.ERROR: Class App\Http\Controllers\Admin\CategoryController does not exist {"exception":"[object] (ReflectionException(code: -1): Class App\\Http\\Controllers\\Admin\\CategoryController does not exist at /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Container/Container.php:752)
[stacktrace]
#0 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Container/Container.php(752): ReflectionClass->__construct('App\\\\Http\\\\Contro...')
#1 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Container/Container.php(631): Illuminate\\Container\\Container->build('App\\\\Http\\\\Contro...')
#2 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Container/Container.php(586): Illuminate\\Container\\Container->resolve('App\\\\Http\\\\Contro...', Array)
#3 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(721): Illuminate\\Container\\Container->make('App\\\\Http\\\\Contro...', Array)
#4 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Routing/Route.php(219): Illuminate\\Foundation\\Application->make('App\\\\Http\\\\Contro...')
#5 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Routing/Route.php(779): Illuminate\\Routing\\Route->getController()
#6 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Routing/Route.php(740): Illuminate\\Routing\\Route->controllerMiddleware()
#7 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Routing/Router.php(623): Illuminate\\Routing\\Route->gatherMiddleware()
#8 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Routing/Router.php(603): Illuminate\\Routing\\Router->gatherRouteMiddleware(Object(Illuminate\\Routing\\Route))
#9 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Routing/Router.php(571): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#10 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Routing/Router.php(549): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#11 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#12 /mnt/_work_sdb8/wwwroot/lar/lprods/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
Почему двойное “\” имени файла
App\\Http\\Controllers\\Admin\\CategoryController
в ошибке и почему он не найден ?
Не в сети
По-прежнему ищу решение.
Кто делал разделение приложения на backend/frontend, поделитесь пожалуйста заголовком в контролах админки.
Видимо у меня ошибка там...
Не в сети
Пространство имен должно быть:
namespace App\Http\Controllers\Admin;
Не в сети
Тоже долго мучился с поиском подходящей структуры. Структура, когда в каждой папке лежит по две папки Frontend и Backend мне почему-то не нравиться. Наверное привычка с пошла с CMS, когда админка в отдельной папке. Создал для себя такую структурку https://github.com/arion85/laravel-backend-frontend - сыровата, может где-то с багами, но времени пока не хватает допилить. Хотя в целом работает.
Не в сети
Страницы 1