不同个人资料中的相同视图 Laravel
Same views in different profiles Laravel
我是 laravel 的新手。我正在使用 laravel 6 开发医疗应用程序。我使用 laravel 身份验证和中间件来控制用户和配置文件。我有 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 的新手。
如果你想获得相同的 Blade 视图,你只需要从视图名称中删除前缀
之前
return view('mphysicist.dashboard');
之后
return view('dashboard');
您给 view
助手的值是一条从 views
文件夹开始的虚线路径。顺便说一句,你应该移动通用的 Blade 文件,以免被命名空间。
我是 laravel 的新手。我正在使用 laravel 6 开发医疗应用程序。我使用 laravel 身份验证和中间件来控制用户和配置文件。我有 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 的新手。
如果你想获得相同的 Blade 视图,你只需要从视图名称中删除前缀
之前
return view('mphysicist.dashboard');
之后
return view('dashboard');
您给 view
助手的值是一条从 views
文件夹开始的虚线路径。顺便说一句,你应该移动通用的 Blade 文件,以免被命名空间。