2014-12-02 183 views
0

我不太確定以下問題出在哪裏(我正在使用PHP和laravel)。我有一個帶有頁眉和頁腳的主要模板。我有一個視圖(註冊)來創建一些請求(視圖,控制器和模型)。目前一切都很好。現在,我正在嘗試添加一個編輯視圖並創建一個新視圖(RegisterEdit - 與之前的視圖相同),但僅爲給定ID填充值。在這個新視圖中,頁面上的所有鏈接(頁眉和頁腳)都是錯誤指向的。Laravel路由URL問題

在舊觀點,鏈接到主頁是這樣的:

mywebsite.com/home 

但在編輯看來,這正在改變以

mywebsite.com/RegisterEdit/home 

以下是我的路線。

Route::get('Register', '[email protected]_Load'); 
Route::post('Register', '[email protected]'); 
Route::get('RegisterEdit/{id}', '[email protected]_Load'); 
Route::post('RegisterEdit', '[email protected]'); 

任何想法,這裏有什麼可能是錯誤的?

+0

你可以發佈你的頁眉和頁腳的代碼嗎?這看起來像是它與絕對鏈接而不是你的路線文件的問題。 – 2014-12-02 15:53:09

+0

我一直在懷疑,但我的擔心是如何與其餘的意見合作。我已經注意到所有包含文件的這個問題。例如。 {{HTML :: script('js/jquery-1.11.1.js')}},也不會加載(它們在其他視圖中工作正常)。這是我的網址「Profile」(將其修改爲/ Profile)可以工作。但我感興趣的是爲什麼它在其他觀點工作。 – Chandra 2014-12-02 16:44:26

+0

如果您在視圖中使用代碼「Home」,那麼您不應該有這些問題。 – 2014-12-02 16:46:17

回答

0

要建立在你的代碼的網址,你應該使用URL::to,例如:

<a href="{{ URL::to('home')">Home page</a> 

,或者你應該在你的頭你<head>部分添加:

<base href="http://mywebsite.com/"> 

(斜線這裏需要域名後)。

+0

此更改也適用。但我想知道爲什麼它在其他地方工作。同樣,我所有的包含文件都有相同的問題(js文件)。 (/js/bootstrap.min.js)更改爲(RegisterEdit/js/bootstrap.min.js)。 – Chandra 2014-12-02 16:57:51

+0

@Chandra這是因爲如果你不使用絕對路徑(在開始時使用http),所有的url都是相對於當前路徑的,所以如果你在'mywebsite.com/RegisterEdit'目錄中,'home'會被追加到這個路徑,爲了防止它,你需要或者使用基礎href(所有的URL都將相對於基礎href)或者在任何地方使用絕對路徑 – 2014-12-02 17:09:49

+0

感謝Marcin。這是一個公平的觀點,我意識到這一點。我的問題是當我在mywebsite.com/Register,它指向mywebsite.com/home,但是當我在mywebsite.com/RegisterEdit時,它指向mywebsite.com/RegisterEdit/home。我只會再看一遍。 – Chandra 2014-12-02 17:48:22