как получить доступ к контроллеру администратора в Laravel 5?

58
6

Я хочу получить доступ к контроллеру администратора из папки администратора, но у меня возникли проблемы с его работой.

routes.php

Route::group(array('namespace' => 'admin', 'prefix' => 'admin'), function() {
Route::resource('ideas', 'AdminIdeaController');
});

AdminIdeaController.php

<?php namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Session;
use DB;
use Route;
use User;
use Hash;
use Auth;
use Input;
use Logout;
use Validator;
use Authenticatable;
use Redirect;
use Illuminate\Http\Request;

class AdminIdeaController extends BaseController
{

public function index()
{

$data['idas'] = DB::table('ideas')
->get();

return View('/admin/ideas.view',$data);
}
}

Путь к папке:

Http
Controllers
Admin
AdminIdeaController .php

ошибка:

ReflectionException in Container.php line 736:
Class App\Http\Controllers\AdminIdeaController does not exist

Я сделал все согласно laravel: 5.

Пожалуйста, помогите, как я могу направить этот файл папки.

Благодарю.

спросил(а) 2015-10-06T08:43:00+03:00 5 лет назад
1
Решение
59

Согласно вашей структуре папок ваше пространство имен в пути является ошибкой. Это должно быть Admin не admin как это

Route::group(array('namespace' => 'Admin', 'prefix' => 'admin'), function() {
Route::resource('ideas', 'AdminIdeaController');
});

По этим маршрутам ваш контроллер должен находиться внутри папки Admin и вы можете получить доступ к этому контроллеру с помощью /admin/ideas

Вы можете сделать контроллер внутри папки, используя команду, подобную этой

php artisan make:controller foldername/controllername

Если вы хотите создать новую папку и сделать контроллер внутри этой папки, вы можете использовать эту команду

php artisan make:controller foldername\\controllername 

ответил(а) 2015-10-06T10:32:00+03:00 5 лет назад
70

У вас нет AdminIdeaController, но Admin\AdminIdeaController (обратите внимание на подпапку admin). Итак, я думаю, что ваш маршрут должен быть

Route::resource('ideas', 'Admin\AdminIdeaController');

ответил(а) 2015-10-06T09:09:00+03:00 5 лет назад
41

Вам просто нужно добавить имя папки в пространство имен, подобное этому

namespace App\Http\Controllers\name of folder

а затем запустить:

composer dump-autoload

Если не работает, попробуйте создать новый контроллер с командой:

php artisan make:controller nameOfFolder/nameOfController

ответил(а) 2015-10-06T09:37:00+03:00 5 лет назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема