2017-08-13 148 views
0

我在Laravel 5.4中遇到了路由問題。我正在嘗試爲公司顯示簡單的編輯表單。Laravel 5.4缺少路由參數 - param已傳遞給route()方法

我得到的錯誤是

enter image description here

web.php:

$this->get('company/edit/{company}','SuperAdmin\[email protected]')->name('company.edit'); 
$this->post('company/edit', 'SuperAdmin\[email protected]'); 

我如何建立鏈接路線:

<a href="{{route('company.edit', ['company' => $company->id])}}" class="btn btn-success">Edit</a> 

在控制器:

public function showEditForm() 
{ 
    return view('super.company.edit'); 
} 

解決:親愛的上帝,我忘了添加參數到route()方法在我渲染窗體的視圖。感謝大家。

+0

嘗試'PHP工匠路線:clear',然後檢查它是否給你同樣的錯誤。 –

+0

試過了,錯誤仍然存​​在。 – Danijelb

回答

0

您不需要爲路由變量定義關鍵字,只需將它作爲第二個參數傳遞給route函數即可。 Laravel將自動按照順序解析參數。

像:

route('company.edit', $company->id); 

希望這會有所幫助。

+0

我也試過,並沒有奏效。在這兩種情況下,當我看到URL的參數是在那裏,但仍然出現錯誤。 – Danijelb

+0

@Danijelb那你確定你沒有在其他地方使用過相同的路線嗎?在導航,標題等。 –

+0

不,這是我第一次添加這個。 Laravel的路線工作很簡單,但我無法弄清楚我做錯了什麼。 – Danijelb

0

首先,您可以調試像dd($company->id)這樣的id,以確保您確實獲得了所需的ID,因爲如果它的null不起作用。

這聽起來很傻,但它發生..

+0

我已經這樣做了,id在那裏,它是有效的 – Danijelb

+0

嗯......當你在瀏覽器中點擊'localhost/your-project/company/edit/2' URL時會發生什麼?編輯頁面出現了嗎? –

+0

不,如果你試圖直接訪問它,它仍然是相同的錯誤 – Danijelb