php - 不同配置文件中的相同视图 Laravel
问题描述
我是 laravel 的新手。我正在使用 laravel 6 开发医疗应用程序。我使用 laravel auth 和中间件来控制用户和配置文件。我有 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
helper 的值是从您的views
文件夹开始的虚线路径。顺便说一句,您应该移动通用 Blade 文件以免被命名空间。
推荐阅读
- sql-server - 在 SQL Server 2016 存储过程中解析 XML
- tensorflow - 在冻结的 Keras 模型中,dropout 层是否仍然处于活动状态(即 trainable=False)?
- c++ - 如何在 Linux 中通过 C/C++ 以另一个用户身份创建文件?
- sql - 如何在 In Clause 中为数千个项目编写 Like Condition
- python - 从存储帐户安装私有 python 轮子
- python - 如何在不改变其行为的情况下检查是否调用了 @patched-out python 方法?
- keras - keras中的weighted_masked_objective
- excel - 在 Excel 中使用 TEXTJOIN 时如何消除重复项?
- mongodb - 编写需要使用分组的 MongoDB 聚合查询时遇到问题
- codenameone - 代号为 1 的 netbeans 中显示许多错误