2016-02-07 43 views
6

我不斷收到此錯誤Laravel 5.2缺少必要的參數[路線:user.profile] [URI:用戶/ {}暱稱/資料]

ErrorException in UrlGenerationException.php line 17: 

當以往任何頁面加載,我登錄。

這裏是我的導航看起來像

@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" aria-haspopup="true" aria-expanded="false">{{ Auth::user()->nickname }}<span class="caret"></span></a> 
        <ul class="dropdown-menu"> 
         <li><a href="{{ route('user.profile') }}">Profile</a></li> 
         <li><a href="{{ route('user.settings') }}">Settings</a></li> 
         <li><a href="{{ url('/logout') }}">Log Out</a></li> 
        </ul> 
       </li> 
      @endif 

我遇到的問題是,{{路線(「user.profile」)}}不工作?

當我點擊鏈接是www.mydomain.com/User/SCRATK/profile是工作正常,但頁面不會加載因此錯誤?

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

這是我的路線文件

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

Route::get('/', ['as' => 'home', 'uses' => '[email protected]']); 

Route::group(['namespace' => 'User', 'prefix' => 'user'], function(){ 
    Route::get('{nickname}/settings', ['as' => 'user.settings', 'uses' => '[email protected]']); 
    Route::get('{nickname}/profile', ['as' => 'user.profile', 'uses' => '[email protected]']); 
}); 
}); 
+0

分享你的路由文件來因爲這可能是您的問題實際上規定,或者給你一個首發 –

+0

我只是沿着我有他們的路線 – SCRATK

+0

我已經圍繞它現在這樣Profile SCRATK

回答

20

您必須將路由參數傳遞給route方法,例如:

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

這是因爲,這兩條路徑都在{nickname}路線聲明。我用$nickname例如但要確保你改變$nickname到適當的值/變量,例如,它可能是類似以下內容:

<li><a href="{{ route('user.settings', auth()->user()->nickname) }}">Settings</a></li> 
+0

是啊我試過

  • Settings
  • 而這對我很有用 – SCRATK

    +0

    感謝您的幫助。現在我改變了它到Profile SCRATK

    +0

    似乎有點像一個錯誤,因爲即使您要路由的控制器方法有一個默認參數,例如:public function profile($ nickname = null){...} – Andrew

    1

    我在laravel 5.2

    {{ Form::open(['route' => ['votes.submit', $video->id], 'method' => 'POST']) }} 
        <button type="submit" class="btn btn-primary"> 
         <span class="glyphicon glyphicon-thumbs-up"></span> Votar 
        </button> 
    {{ Form::close() }} 
    

    解決方案我的路線文件(下中間件)

    Route::post('votar/{id}', [ 
        'as' => 'votes.submit', 
        'uses' => '[email protected]' 
    ]); 
    
    Route::delete('votar/{id}', [ 
        'as' => 'votes.destroy', 
        'uses' => '[email protected]' 
    ]); 
    
    +2

    這不是什麼待解決這個問題?這是關於顯示一個配置文件不顯示和刪除選票 – SCRATK

    +0

    @DiegoQuispe,它實際上幫助了我。我在表單動作中錯過了'$ video-> id'並從答案中得到了這個。 +1 – manian