Одинаковые виды в разных профилях Laravel - PullRequest
0 голосов
/ 04 апреля 2020

Я новичок в 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');
});

Это мои взгляды:

enter image description here

И это мои папки контроллера :

enter image description here

Это мой код панели администратора:

<?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.

1 Ответ

1 голос
/ 04 апреля 2020

Если вы хотите получить тот же самый вид Blade, вам просто нужно удалить префикс из имени представления

До

return view('mphysicist.dashboard');

После

return view('dashboard');

Значение, которое вы указываете view helper, является точечным путем, начиная с вашей папки views. Кстати, вам следует переместить обычный файл Blade, чтобы не занимать пространство имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...