اذهب إلى المحتوى

السؤال

نشر

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

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

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

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

مثال:

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

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

Recommended Posts

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...