Я создаю бизнес-каталог, в котором будет две разные панели управления в соответствии с ролями пользователей, которые могут быть: Администратор или же Компания.
Чтобы справиться с этим, была разработана следующая процедура:
1- Создайте новое промежуточное ПО:
php artisan make:middleware Company
2- Код для промежуточного программного обеспечения компании (то же самое для администратора и сообщества):
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class Company
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(Auth::check()){
if(Auth::user()->isCompany()){
return $next($request);
}
}
return redirect('/');
}
}
3- Добавлена следующая функция в моей модели User:
public function isCompany(){
if($this->role->Role_Type == "Company" && $this->is_active == 1){
return true;
}
return false;
}
4- занимался маршрутизацией
Route::group(['middleware'=>'company'], function(){
Route::get('/company', function(){
return view('company.index');
});
});
5- Создан новый пользователь с ролевой компанией
На данный момент, однажды пытаясь войти в систему с этим пользователем, всегда получать подсказку с этим сообщением:
ReflectionException в файле Container.php 734:
Класс компании не существует
Есть идеи, как это решить?
На заметку: уже пробовал: composer dump-autoload
Первая проблема, которую я вижу, заключается в том, что в вставленном вами коде имя класса Community
вместо Company
, Имя класса должно совпадать с именем файла, регистром и всеми. Кроме того, вы можете поделиться своим файлом промежуточного программного обеспечения? Если проблема не связана с именованием, возможно, существует проблема со ссылкой внутри одного из файлов вашего провайдера или ядра.
Других решений пока нет …