• 0

كيف يمكنني إضافة middleware في بعض الmethods في route resource

السلام عليكم،

عندي route للفواتير 

Route::resource('invoices', 'InvoicesController');

أريد عمل middleware على بعض الmethods داخل الroute

مثال:

الmethod index بداخل الكنترولر أريد جعل لها middleware = auth أما الmethod edit أريد جعل لها middleware = edit_invoice وهكذا..

أستخدم لارافل 7 وأستخدم laratrust

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

بإمكانك تخصيص تطبيق الطبقات الوسيطة (middlewares) في المتحكم و ذلك في الباني الخاص به مثال:

<?php

class DiscountController extends Controller
{

  public function __construct()
  {
    $this->middleware('permission:read discount codes')->only('index');
    $this->middleware('permission:add discount code')->only(['create', 'store']);
    $this->middleware('permission:edit discount code')->only(['edit', 'update']);
    $this->middleware('permission:delete discount code')->only('destroy');
  }
  
  
}

مثلاً أنت تريد تطبيق الmiddleware auth على index فقط فتقوم بالتالي:

$this->middleware('auth')->only('index');

و إن كنت تريد تطبيق أكثر من middleware على نفس التابع يُمكنك تمريرها على شكل مصفوفة:

$this->middleware(['auth', 'middl2'])->only('index');

بطريقة عكسية للتابع only هناك تابع آخر يُسمى except و هو يعمل بعكس only.

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يمكنك إضافة ال middlewares داخل constructor in controller 

// إضافة auth to index route only
$this->middleware('auth', ['only' => ['index']]);

// إضافة edit_invoice for edit invoide
$this->middleware('edit_invoice', ['only' => ['edit', 'update']]);

 

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن