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

ظهور خطأ Missing required parameters في لارافيل

Amir Alsaeed

السؤال

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

@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>

 

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

  • 0

يمكنك وضع المتغير هكذا في الوسم التالي 

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

بحيث $nickname هو المتغير وفي هذه الحالة هو اسم الشخص الذي تود الدخول إلى عضويته.

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...