2016-11-18 6 views
2

В моем контроллереКак вернуть вид с якорем в Laravel 5?

return view('pages.index', compact('errors')); 

и она работает нормально, но я не знаю, как вернуть вид на якорь.

return view('pages.index#contact', compact('errors')); 

не работает. Возникает такая ошибка.

InvalidArgumentException in FileViewFinder.php line 137: 
View [pages.index#contact] not found. 

ответ

2

Вы можете использовать некоторые JS. Проходит anchor переменных первые:

$anchor = 'contact'; 
return view('pages.index', compact('errors', 'anchor')); 

Затем используйте hidden или что-то еще, чтобы передать данные в JS:

@if (isset($anchor)) 
    <input type="hidden" name="anchor" value="{{ $anchor }}"> 
@endif 

И, наконец, использовать JS для перемещения страницы:

$(function() { 
    if ($("[name='anchor']").length) { 
     window.location = '#' + $("[name='anchor']").val(); 
    } 
}; 

Это просто например, чтобы дать вам представление.

0

Для этой цели вы можете использовать URL() функция Helper и маршрут должен быть определен, потому что вид() вспомогательная функция просто отображает первый аргумент и принести этот файл, имеющий расширение .blade. В вашем случае он извлекает index.blade.php из папки. если вы будете использовать фрагмент #container, то он не сможет найти этот файл. поэтому в этом случае используйте Url () вспомогательная функция.

Так что вы можете сделать:

URL::to('/pages/index?contact'); 

В routes.blade.php

$route->get("/pages/index?contact","PageController")->with('errors',$errors); 
Смежные вопросы