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

السؤال

نشر (معدل)

لدي الكود التالي الخاص بالتنقّل بين صفحات المشروع:

@if(Auth::guest())
                <li><a href="{{ url('/login') }}">Log In</a></li>
                <li><a href="{{ url('/register') }}">Sign Up</a></li>
            @else
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">{{ Auth::user()->username }}</a>
                    <ul class="dropdown-menu">
                        <li><a href="{{ route('user.profile') }}">Profile</a></li>
                        <li><a href="{{ url('/logout') }}">Log Out</a></li>
                    </ul>
                </li>
            @endif

ولكن عند الضغط على زر profile يظهر لي الخطأ التالي:

Missing required parameters for [Route: user.profile] [URI: user/{username}/profile].

فيبدو أنه لدي مشكلة في {{ route('user.profile') }}

وهذا هو الكود الخاص في مسارات التوجيه:

Route::group(['middleware' => 'web'], function () {
Route::auth();

Route::get('/', ['as' => 'home', 'uses' => 'MainController@index']);

Route::group(['namespace' => 'User', 'prefix' => 'user'], function(){
    Route::get('{username}/profile', ['as' => 'user.profile', 'uses' => 'ProfileController@index']);
});
});

كيف أستطيع حل هذا الخطأ؟

تم التعديل في بواسطة Amir Alsaeed

Recommended Posts

  • 0
نشر

التوجيه باسم "user.profile" ينقصه قيمة {username}

قم بتمرير القيمة عند استدعاء التوجيه في ملف view

...
<li><a href="{{ route('user.profile') }}">Profile</a></li>
...

ليصبح بهذا الشكل

<li><a href="{{ route('user.profile', [ 'username' => Auth::user()->nickname ] ) }}">Profile</a></li>

 

  • 0
نشر

يجب أن تقوم بتمرير المتغيّر أثناء الإشارة إلى المسار بالشكل التالي:

<li><a href="{{ route('user.profile', $username) }}">Profile</a></li>

والسبب في ذلك هو أنك قمت أثناء تعريف المسار بإضافة متغيّر ضمن الرابط:

Route::get('{username}/settings')

ولكن عندما يتم الضغط على زر الحساب الشخصي أو غيره لا يتم تمرير قيمة هذا المتغيّر مع الرابط ولذلك يمكن أن يظهر لك الخطأ أو من الممكن ألا يتم التعرّف على المسار في حالات أخرى.

وفي حال كنت تريد في حالتك تمرير اسم المستخدم الذي قام بتسجيل الدخول إلى مسار التوجيه ليتم بعدها معالجته في المتحكّم الخاص، يمكنك تنفيذ ذلك كالتالي:

<li><a href="{{ route('user.profile', auth()->user()->username) }}">Profile</a></li>

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...