Я работаю над проектом с множественной аутентификацией, в котором администраторы, студенты и преподаватели имеют три уровня аутентификации.Я изменил аутентифицируемую пользовательскую модель по умолчанию на студента и добавил еще две аутентифицируемые модели, которые имеют свои собственные логины.
У меня есть CourseController следующим образом:
use App\Course;
use App\Invoice;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class CourseController extends Controller
{
public function __construct()
{
$this->middleware('auth', ['only' => ['index']]);
$this->middleware('auth:teacher', ['only' => ['index']]);
$this->middleware('auth:admin', ['only' => ['index', 'create', 'store', 'edit', 'update', 'delete', 'search', 'destroy']]);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$data = Course::get();
if (Auth::user()->role == 'admin') {
return view('admin.course.index', compact('data'));
} elseif (Auth::user()->role == 'student') {
return view('student.course.index', compact('data'));
} elseif (Auth::user()->role == 'teacher') {
return view('teacher.course.index', compact('data'));
}
}
}
config / auth.php следующим образом: (по умолчанию охранник ученик)
'defaults' => [
'guard' => 'web',
'passwords' => 'students',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'students',
],
'api' => [
'driver' => 'token',
'provider' => 'students',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'admin-api' => [
'driver' => 'token',
'provider' => 'admins',
],
'teacher' => [
'driver' => 'session',
'provider' => 'teachers',
],
'teacher-api' => [
'driver' => 'token',
'provider' => 'teachers',
],
],
Моя проблема:
Я хочу, чтобы CourseController @ index был доступен для всех трех охранников и передавал данные $ ихсоответствующий вид.Как бы я изменил CourseController, чтобы я мог добиться этого?Пожалуйста, помогите
Если у вас есть другие идеи, вы можете предложить мне это тоже ...