🔥 ۴۰ درصد تخفیف ثبت‌نام دوره‌ها قبل از افزایش قیمت‌ها
۰ ثانیه
۰ دقیقه
۰ ساعت
۲۳ جمال توفیقی
مشکل در پیدا کردن مسیر
جامعه لاراول ایجاد شده در ۰۶ فروردین ۱۴۰۲

سلام

روت صفحه سبد خرید ایجاد کردم و دادمش به nav بارمون وقتی کلیک میکنم روت مسیر گم میکنه

debug به شکل‌ها مختلف انجام دادم optimize clear کردم و .. کلاس کنترلر رو عوض کردم فایده نداشت

ی برنامه لاراولی جدید ایجاد کردم و باز به این مرحله ک رسیدم همون داستان پیش اومد

قریب به احتمال مشکل در tmp ی هست ک استاد بمون دادن و برای امتحان اونو عوض میکنم

سوروس رو در گیت گذاشتم

https://github.com/mehdi-1995/payment

و برای انتقاد

تا الان از اکثر سوال هایی ک پرسیدم جواب درست نگرفتم و یا بشون جواب داده نشد و فقط وقتم رو برای ایجاد تاپیک هدر دادم امیدوارم برای این تاپیک اینطور نباشه

سلام مهدی عزیز

من پروژت رو بررسی که کردم روت‌های سبد خرید نبود و در لینک هم روت رو نداده بودی:

<a href="route ro pas nadadi" class="btn btn-info mr-2">
            @lang('payment.basket') <span class="badge badge-light">{{ $Basket->itemCount() }}span>
        a>
Route::prefix('products')->group(function () {
    Route::get('', [ProductController::class, 'index'])->name('products.index');
    Route::get('{product}', [ProductController::class, 'add'])->name('products.add');
});
خانم پرمیدا نوبختی ۰۶ فروردین ۱۴۰۲، ۱۳:۵۶

احتمالا برا debug پاکشون کردم بعد بالا فرستادمشون شما بیزحمت اضافه کن

نتیجه شو بم بگو


جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۴:۰۰

هر روتی تعریف مکینم با هر کلاس یا متدی not found میزنه

جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۴:۰۷

تست کردم اوکی بود:

Route::get('basket', function () {
    return view('welcome');
})->name('basket.index');
<a href="{{route('basket.index')}}"  class="btn btn-info mr-2">
		@lang('payment.basket') <span class="badge badge-light">{{$Basket->itemCount()??0}}span>
	a>

بازم اگه فکر میکنی مشکل هست سورس رو درست کن بده بررسی کنم.

خانم پرمیدا نوبختی ۰۶ فروردین ۱۴۰۲، ۱۴:۱۹

مجددا ریپازیتوریمو اپدیت کردم بیزحمت اونم چک کن

جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۴:۴۰

داخل روتر روت ایندکس رو زدی:

Route::get('basket', [BasketController::class, 'index'])->name('basket.index');

داخل ویو نام add رو زدی باید index باشه:

کد شما:

"{{ route('basket.add') }}" class="btn btn-info mr-2">
	      @lang('payment.basket') "badge badge-light">{{ $Basket->itemCount() }}span>
	    a>

کد درست:

"{{ route('basket.index') }}" class="btn btn-info mr-2">
	      @lang('payment.basket') "badge badge-light">{{ $Basket->itemCount() }}span>
	    a>
خانم پرمیدا نوبختی ۰۶ فروردین ۱۴۰۲، ۱۵:۰۸

گیت هاب چک کردم روتهام درسته

شما کجا رو چک میکنی؟

https://github.com/mehdi-1995/payment

جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۵:۱۳

روتها درسته

نام روت رو اشتباه پاس دادید:

https://github.com/mehdi-1995/payment/blob/main/resources/views/partials/navbar.blade.php

خانم پرمیدا نوبختی ۰۶ فروردین ۱۴۰۲، ۱۵:۲۰

layout من ک این navbar رو نداره

شما باید این دوجا رو نگاه کنی?

https://github.com/mehdi-1995/payment/blob/main/resources/views/layouts/app.blade.php

https://github.com/mehdi-1995/payment/blob/main/routes/web.php

دایرکتوری partials ک استفاده نکردم


جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۵:۲۹

برای رفع مشکل باید پروژه من pull کنید بعد رو سیستمتون debug ش کنید ن فایل‌ها رو تو گیت نگاه کنید

عجیبه.........

جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۵:۳۴

مهدی عزیز

شما وقتی تاپیک میزنی باید کامل مشکل رو توضیح بدی

بنظرم اینقد که تمرکزت روی ایرادگیری هست روی کدت باشه.

ویویی که من بررسی کردم هم دقیقا مشابه ویویی بود که استفاده شده در حال حاضر.

بنظرم دقتت رو بیشتر کن تا اینچنین موارد ساده ای رو اشتباه نکنی.

تسلطط به روتینگ کم هست و چنین مورد ساده ای رو اشتباه کردی(عجیبه!):

Route::prefix('products')->group(function () {
    Route::get('', [ProductController::class, 'index'])->name('products.index');
    Route::get('/basket', [BasketController::class, 'index'])->name('basket.index');
    Route::get('{product}', [ProductController::class, 'add'])->name('products.add');
});

گروه پروداکت رو باید به این شکل تغییر بدی که وارد بایدینگ نشه({product}) و به مشکل نخوری!

خانم پرمیدا نوبختی ۰۶ فروردین ۱۴۰۲، ۱۵:۴۰

اینکه من اماتورم شکی درش نیست

ولی من بالا کامل توضیح دادم مثل تاپیک‌های قبلی

و این تیکه گروه پروداکت رو باید به این شکل تغییر بدی که وارد بایدینگ نشه({product}) و به مشکل نخوری!

یعنی چی

{} این براکتا رو ما میزاریم برای دادن پارامتر ک انجامم دادم

در ثانی خود م شک داشتم برای بایدینگ بخاطر همین ی پروژه دیگه بالا اوردم خام خام اونجاهم تا ویو basket بش دادم not found زد

Route::prefix('products')->group(function () {
    Route::get('', [ProductController::class, 'index'])->name('products.index');
    Route::get('{product}', [ProductController::class, 'add'])->name('products.add');
    Route::get('basket', [BasketController::class, 'index'])->name('basket.index');
});
جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۵:۴۸

الان دو ساعته دارم روش کار میکنیم ببینم چی شده از طرفی هم شما کمکی نمیکنی اگه میدونید لازمه بیاید رو سیستمم با any desk ولی اینکه من مرتب بیام اهنمایی تون کنم اذیت کنندس

بلاخره اگه شما پروژه رو pull میکردی متوجه میشدی

جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۵:۵۰

در حالتی که شما قرار داده بودی میومد هر آدرسی بعد از /products زده میشد رو به عنوان روت لاین دوم گروه شناسایی میکرد و به متد add در کنترلر ارسال میشد و مانع اجرای بقیه روتها میشد چون لاین بالاتر بود و قبل از اون روت این اجرا میشد.

پس باید به آخر روت‌های گروه انتقال داده بشه تا مشکل حل بشه و سایر روت‌ها قبل از این اد شده باشند.

بهترین پاسخ
خانم پرمیدا نوبختی ۰۶ فروردین ۱۴۰۲، ۱۵:۵۲

الان جواب گرفتم مهندس

متوجه هم نشدم داستانی رو ک گفتید

ولی کاش اون موقع هم شما به این مورد اشاره میکردید ن اسم روت‌ها و ...

جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۵:۵۵

در مبحث morph‌ها استاد اومدن از bind استفاده کردن

ولی اونجا ما به لاراول میگفتیم در صورت دیدن این کلمه یا هرچی دیگه بیا بچسبونش به فلان چیز

در صورتیکه الان در بایند ما اشاره ای به پروداکت نکردیم

جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۵:۵۸

بزار یجور دیگه بگم:

منظورم از باید پارامتر دادن به روت و جایگزینی آدرس فراخوانی شده به جای {products} روت بود

شما وقتی یه روت میزنید در لاراول ذخیره میشه و با فراخونی یک آدرس لاراول طبق اون آدرس روت رو در اختیار کاربر قرار میده!

فکر کن روت‌ها در قالب یک آرایه به این صورت ذخیره شده در لاراول:

$routes=[
'/products',
'/products/{product}',
'/products/basket'
];

الان ایندکس دوم آرایه زودتر از ایندکس سوم بررسی میشه و آدرسی هم که کاربر میزنه با مورد دوم تطابق داره دیگه!

پس میاد هرچی هست رو جزو اون حساب میکنه و ایندکس سوم به طوری میشه گفت اضافه نمیشه!

خانم پرمیدا نوبختی ۰۶ فروردین ۱۴۰۲، ۱۶:۰۳

در پروژه جامع در مورد متدهای show/delete/update چنین مشکلی نداشتیم؟

جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۶:۱۱

خیر.

خانم پرمیدا نوبختی ۰۶ فروردین ۱۴۰۲، ۱۶:۱۴

پس چراش جا افتاد

پس چراش در پروژه جامع در مورد متدهای show/delete/update چنین مشکلی نداشتیم؟

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

Route::get('products/{product}', [ProductController::class, 'add'])->name('products.add');
Route::get('products', [ProductController::class, 'index'])->name('products.index');
Route::get('products/basket', [BasketController::class, 'index'])->name('basket.index');

برای روت دوم مشکلی نداریم و فقط برای روت سوم مشکل بوجود میاد

اینا روت‌های پروژه video shear ما هستن

Route::get('categories/{category:slug}/videos', [CategoryVideoController::class, 'index'])->name('category.video');
Route::post('videos/{video}/comment', [CommentController::class, 'store'])->name('video.comment');
Route::get('{likeable_type}/{likeable_id}/like', [LikeController::class, 'create'])->name('like.create');
Route::get('{likeable_type}/{likeable_id}/dislike', [DisLikeController::class, 'create'])->name('dislike.create');
Route::middleware('auth')->group(function () {
    Route::prefix('videos')->group(function () {
        Route::get('create', [VideoController::class, 'create'])->name('videos.create');
        Route::post('', [VideoController::class, 'store'])->name('videos.store');
        Route::get('{video}', [VideoController::class, 'show'])->name('videos.show');
        Route::get('{video}/edit', [VideoController::class, 'edit'])->name('videos.edit');
        Route::put('{video}', [VideoController::class, 'update'])->name('videos.update');
    });
});

ک چنین مشکلی برای همدیگه درست نکردن

جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۸:۱۱

چون از وجود اومدن این تداخل جلوگیری شده و روت‌ها درست پیاده شدند.

خانم پرمیدا نوبختی ۰۶ فروردین ۱۴۰۲، ۱۸:۳۷

حالا ما برای جلوگیری از این خطا باید چیکار کنیم ؟

جمال توفیقی ۰۶ فروردین ۱۴۰۲، ۱۸:۳۹

عرض کردم

روت‌ها رو درست ایجاد کنید.

خانم پرمیدا نوبختی ۰۶ فروردین ۱۴۰۲، ۱۹:۲۴