Я новичок в laravel. Я разрабатываю медицинское приложение, используя laravel 6. Я использовал laravel auth и middleware для управления пользователями и профилями. У меня есть 4 профиля (админ, физический врач, врач и медсестра). Мне нужно, чтобы администратор и физический врач имели одинаковую панель инструментов (основной экран). Кто-нибудь знает, как это сделать?
This is my routes file web.php:
Route::get('/', function () {
return view('auth.login');
});
Auth::routes();
Route::group(['as'=>'admin.','prefix'=>'admin','namespace'=>'admin', 'middleware'=>['auth','admin']], function ()
{
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
Route::resource('user', 'UserController');
Route::resource('dosimeter', 'DosimeterController');
Route::resource('dosimeterref', 'DosimeterRefController');
Route::resource('room', 'RoomController');
});
Route::group(['as'=>'mphysicist.','prefix'=>'mphysicist','namespace'=>'mphysicist', 'middleware'=>['auth','mphysicist']], function ()
{
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});
Route::group(['as'=>'doctor.','prefix'=>'doctor','namespace'=>'doctor', 'middleware'=>['auth','doctor']], function ()
{
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});
Route::group(['as'=>'nurse.','prefix'=>'nurse','namespace'=>'nurse', 'middleware'=>['auth','nurse']], function ()
{
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});
Это мои взгляды:
И это мои папки контроллера :
Это мой код панели администратора:
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\DosimeterRef;
use App\Room;
use App\DoseRecordReference;
use Illuminate\Support\Facades\DB;
class DashboardController extends Controller
{
public function index(Request $request)
{
$rooms = Room::all();
$dosiemterrefs = DosimeterRef::all();
$doseRecordReferences = DoseRecordReference::all();
$period = $request->get('period_form');
if(empty($period) || is_null($period) || $period == 0){
$dosim_info_array = self::getRoomDosimData(1);
} else {
$dosim_info_array = self::getRoomDosimData($period);
}
return view('admin.dashboard',compact('rooms','dosiemterrefs', 'doseRecordReferences', 'period', 'dosim_info_array'));
}
//Other functions
}
А это панель моего физического доктора:
<?php
namespace App\Http\Controllers\MPhysicist;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class DashboardController extends Controller
{
public function index()
{
return view('mphysicist.dashboard');
}
}
Мне нужно, чтобы обе панели инструментов были одинаковыми, чтобы избежать повторения кода.
Большое спасибо и извините, если вопрос слишком прост, я новичок в laravel.