2014-12-02 6 views
0

Я не уверен, что случилось со следующей проблемой (я использую PHP с laravel). У меня есть основной шаблон с верхним и нижним колонтитулом. У меня есть представление (Register) для создания некоторого запроса (представление, контроллер и модель). Пока все в порядке. Теперь я пытаюсь добавить представление редактирования и создать новое представление (RegisterEdit - то же, что и предыдущее представление), но только со значениями, заполненными для данного идентификатора. В этом новом представлении все ссылки (верхний и нижний колонтитулы) на странице неправильно указаны.Ошибка URL-адреса маршрутизации Laravel

В старом зрения, ссылка на главную страницу, как это:

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

Можете ли вы разместить код для своего верхнего и нижнего колонтитулов? Похоже, что это проблема с относительной или абсолютной привязкой, а не с файлом маршрутов. –

+0

Я подозревал то же самое, но я был обеспокоен тем, как он работает с остальными видами. Я заметил эту проблему со всеми включенными файлами. Напр. {{HTML :: script ('js/jquery-1.11.1.js')}}, также не загружается (они отлично работают в других представлениях). Это мой URL-адрес «Profile» (изменяет это на/Profile). Но меня интересует, почему он работает в других взглядах. – Chandra

+0

Если вы используете код 'Home' в своих представлениях, у вас не должно быть этих проблем. –

ответ

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

+0

@Chandra Это потому, что если вы не используете абсолютные пути (с http в начале), все ваши URL-адреса относятся к текущему пути, поэтому, если вы находитесь в каталоге 'mywebsite.com/RegisterEdit'' home', будет добавлен этот путь, чтобы предотвратить его, вам нужно либо использовать base href (все URL-адреса будут относиться к базе href), либо использовать везде абсолютные пути –

+0

Спасибо Marcin. Это справедливый момент, и я знаю об этом. Моя проблема в том, что я нахожусь в mywebsite.com/Register, он указывает на mywebsite.com/home, но когда я нахожусь в mywebsite.com/RegisterEdit, он указывает на mywebsite.com/RegisterEdit/home. Я просто просмотрю его еще раз. – Chandra

Смежные вопросы