日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

在Laravel項(xiàng)目中,實(shí)現(xiàn)基于權(quán)限的數(shù)據(jù)導(dǎo)出和導(dǎo)入功能是一項(xiàng)比較常見(jiàn)的需求。本文將介紹如何通過(guò)Laravel框架提供的一些擴(kuò)展包和權(quán)限管理機(jī)制,來(lái)實(shí)現(xiàn)這個(gè)功能。

    使用Laravel-Excel擴(kuò)展包進(jìn)行數(shù)據(jù)導(dǎo)出和導(dǎo)入

Laravel-Excel是一個(gè)非常好用的Excel導(dǎo)入和導(dǎo)出擴(kuò)展包,它提供了簡(jiǎn)便的API,可以輕松地實(shí)現(xiàn)Excel文件的讀寫(xiě)操作。以下是使用Laravel-Excel進(jìn)行導(dǎo)入和導(dǎo)出的簡(jiǎn)單操作步驟。

安裝依賴:

composer require maatwebsite/excel

登錄后復(fù)制

在config/app.php文件的providers中添加以下服務(wù)提供者:

MaatwebsiteExcelExcelServiceProvider::class,

登錄后復(fù)制

使用artisan命令生成配置文件:

php artisan vendor:publish --provider="MaatwebsiteExcelExcelServiceProvider"

登錄后復(fù)制

此時(shí),config/excel.php配置文件就會(huì)被生成,我們可以通過(guò)對(duì)其進(jìn)行修改來(lái)配置自己的Excel導(dǎo)入和導(dǎo)出方式。

在需要進(jìn)行Excel導(dǎo)入和導(dǎo)出的Controller中,引入命名空間:

use MaatwebsiteExcelFacadesExcel;

登錄后復(fù)制

進(jìn)行Excel導(dǎo)出:

public function export(Request $request)
{
    $this->authorize('permission_name'); //權(quán)限驗(yàn)證

    Excel::create('filename', function($excel) use ($data) {
        $excel->sheet('sheet_name', function($sheet) use ($data) {
            $sheet->fromArray($data);
        });
    })->export('xlsx');
}

登錄后復(fù)制

進(jìn)行Excel導(dǎo)入:

public function import(Request $request)
{
    $this->authorize('permission_name'); //權(quán)限驗(yàn)證

    $file = $request->file('file');

    Excel::load($file, function($reader) {
        $results = $reader->all();
        //對(duì)導(dǎo)入的數(shù)據(jù)進(jìn)行處理
    });
}

登錄后復(fù)制

    使用Laravel權(quán)限管理機(jī)制來(lái)控制導(dǎo)入和導(dǎo)出的權(quán)限

Laravel提供了非常好用的權(quán)限管理機(jī)制,我們可以通過(guò)使用Laravel自帶的Auth,來(lái)實(shí)現(xiàn)對(duì)用戶角色的鑒權(quán)。以下是控制數(shù)據(jù)導(dǎo)入和導(dǎo)出的權(quán)限示例代碼。

首先,在數(shù)據(jù)庫(kù)中為導(dǎo)入和導(dǎo)出操作定義權(quán)限名稱:

//數(shù)據(jù)庫(kù)遷移文件
public function up()
{
    Schema::create('permissions', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name')->unique();
        $table->string('display_name')->nullable();
        $table->string('description')->nullable();
        $table->timestamps();
    });

    DB::table('permissions')->insert([
        ['name' => 'export_data', 'display_name' => '數(shù)據(jù)導(dǎo)出', 'description' => '可以導(dǎo)出數(shù)據(jù)'],
        ['name' => 'import_data', 'display_name' => '數(shù)據(jù)導(dǎo)入', 'description' => '可以導(dǎo)入數(shù)據(jù)'],
    ]);
}

登錄后復(fù)制

然后,在用戶管理模塊中,為用戶定義角色和權(quán)限:

//在用戶管理模塊中為用戶定義角色和權(quán)限
$user = User::find(1);

$exportDataPermission = Permission::where('name', 'export_data')->first();
$importDataPermission = Permission::where('name', 'import_data')->first();

$adminRole = new Role();
$adminRole->name         = 'admin';
$adminRole->display_name = '系統(tǒng)管理員';
$adminRole->description  = '擁有系統(tǒng)所有權(quán)限';
$adminRole->save();

$user->attachRole($adminRole);

$adminRole->attachPermissions([$exportDataPermission, $importDataPermission]);

登錄后復(fù)制

最后,在Controller中,使用authorize方法對(duì)用戶角色進(jìn)行鑒權(quán):

public function export()
{
    $this->authorize('export_data');
    //進(jìn)行數(shù)據(jù)導(dǎo)出操作
}

public function import(Request $request)
{
    $this->authorize('import_data');
    //進(jìn)行數(shù)據(jù)導(dǎo)入操作
}

登錄后復(fù)制

分享到:
標(biāo)簽:數(shù)據(jù)導(dǎo)入 數(shù)據(jù)導(dǎo)出 權(quán)限
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定