Armin Rahmati
3 سال پیش توسط Armin Rahmati مطرح شد
6 پاسخ

ایجاد middleware برای URL

سلام دوستان.
کاربر پس از ثبت نام میاد اطلاعاتشو کامل میکنه که روت من به صورت زیر است:

Route::get('panel/profile/create', [ProfileController::class, 'create'])->name('profile.create');

حالا میخوام بعد از اینکه اطلاعاتشو ثبت کرد دیگه نتونه به روت بالا دسترسی داشته باشه و اگه روت بالا رو وارد کرد، مثلا به جاش به روت زیر هدایت بشه:

Route::get('panel/profile/edit', [ProfileController::class, 'edit'])->name('profile.edit');

اینو چجور باید داخل middlware بنویسیم؟
اصلا باید از middleware استفاده کنم یا راهه دیگه ای داره؟


ثبت پرسش جدید
مجتبی دلشاد
تخصص : توسعه دهنده بک اند
@delshad 3 سال پیش مطرح شد
0

شما میتونی داخل کنترلر اول چک کنی ایا اطلاعات کاربر تکمیل شده یا نه
اگه شده بود که خب میتونید کاربر رو به یک روت دیگه هدایت کنید
اما اگه اطلاعات تکمیل نشده بود ویو مورد نظرتون رو نمایش بده یا هر عمل دیگه ای که قصد دارید انجام بشه


علی اسماعیلی
تخصص : php Laravel
@aliesmaili.code 3 سال پیش مطرح شد
0

میتونی از همون middlewareاستفاده کنی توی middleware هم به user دسترسی داریم
چک کن ببین اون اطلاعاتی رو میخوای ذخیره کرده یا نه بعد redirect کن به هر route میخوای
یا یه فیلد اضافه کن مثلا complete پیش فرض false باشه وقتی true شد
دیگه از همون اول دیگه این route قبلی رو نشون نشده route جدیده رو نشون بده یا از همین middleware استفاده کن و توش این complete رو چک کن


amir
تخصص : بک اند و فرانت اند
@behzadi 3 سال پیش مطرح شد
0

به نظر من چون فقط یک روته توی کنترلر اینکارو بکن میدل ور نرو


مهران مرندی
تخصص : برنامه نویس
@mehranmarandi 3 سال پیش مطرح شد
0

@arminrahmati999
نیاز به ایجاد middleware جدید نیست
بصورت پیش فرض یک middleware برای این کار وجود داره

app/Http/Middleware/RedirectIfAuthenticated.php

رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 3 سال پیش مطرح شد
0

درود ...
به ترتیب:
۱.

php artisan make:middleware IsAdminMiddleware

۲.

Route::middleware(['auth', 'admin'])->resource('/userarea/users', UserController::class)->except(['show']);

۳. Middleware/IsAdminMiddleware

public function handle(Request $request, Closure $next)
    {
        if(auth()->user()->role !== 'admin'){
            abort(403, 'شما دسترسی لازم برای ورود به این صفحه را ندارید!');
        }
        return $next($request);
    }
  1. kernel.php / $routeMiddleware
    'admin' => \App\Http\Middleware\IsAdminMiddleware::class,
  2. ایجاد دسترسی به بخش:
    @if(auth()->user()->role === 'admin')
      <li class="mb-3"><a href="{{route('users.index')}}">کاربران</a></li>
    @endif

Armin Rahmati
@arminrahmati999 3 سال پیش مطرح شد
1

@delshad
@ali.esmaili954
@behzadi
@mehranmarandi90
@endworld
تشکر از همه ی دوستان ولی روش آقای @delshad بهتر بود.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام