2017-11-03 5 views
0

이전에는 CakePHP로 일한 적이 없으며 사용자를 페이지 상단으로 다시 가져갈 버튼을 추가해야합니다. 내 질문에 프레임 워크를 사용하여 여러 페이지 (전부는 아니지만)에서 어떻게 수행 할 수 있습니까?CakePHP - 여러 페이지에 "back to top"버튼 추가하기

나는 이것을 알아낼 수 없었고 이에 대한 빠른 해결책이 필요했습니다. 어떤 도움을 주셔서 감사합니다!

+0

나는 이것이'CakePhp' 아무 관계가 없다고 생각한다! 'html'과'javascript'를 사용하여 ashieved 할 수 있습니다. https://www.w3schools.com/howto/howto_js_scroll_to_top.asp –

+0

페이지의 전부가 아닌 복수의 경우 어떻게 할 수 있습니까? –

+0

프로젝트의 일부 페이지에만 단추가 필요합니다. 모든 단추가 필요하지는 않습니다. – cheesycoder

답변

0

여러 가지 방법으로이 문제를 해결할 수 있습니다.

$this->set('backToTop',true); 

가있는 경우 : 당신은 디스플레이 상단 버튼에 다시 원하는 컨트롤러 작업에서 다음

<?php if (!empty($backToTop)) : ?> 
    <!-- html & JS back to top code here--> 
<?php endif; ?> 

: 간단한 간단한 조건으로 default.ctp (또는 중) 레이아웃을 편집하다 'back to top'스크립트를 사용하지 않는 경우를 제외하고 코드를 제외하는 조건을 사용하는 것이 좋습니다.

+0

컨트롤러가이 순수한 뷰 로직을 결정해서는 안되며, MVC의 아이디어를 깨뜨린다. – burzum

+0

이것은 다소 엄격한 'MVC에 대한 아이디어'입니다 ... MVC 패턴 자체가 전혀 충돌하지 않습니다. 컨트롤러는 뷰가 소비 할 수 있도록 var를 설정합니다 (또는 설정하지 않음). 내가 말했듯이, 여러 가지 방법으로 이것에 대해 생각해 보았다. @cheesycode가 Cake에서 처음 접했을 때 가장 간단하고 실용적인 접근 방식을 택했다. –

+0

컨트롤러에서 var를 설정했다. 뷰의 컨텍스트에서만 관련이있다. 보기와 관련된 * 만 * 제어합니다. 컨트롤러는 그것에 대해 신경 쓰지 않으며,이 var를 전혀 사용하지도 않습니다. 이런 방식으로하고 싶다면,'App \ View \ AppView'의 initialize() 메소드에서 설정 하겠지만 컨트롤러에서는 명확하게 설정하지 않을 것입니다. var는 특정 뷰 파일 내에서 필요에 따라 덮어 쓸 수 있습니다. – burzum

0

버튼을 렌더링하는 앱의 일반 유틸리티 도우미에서 도우미 또는 메소드를 만듭니다 또는 필요한 곳에 포함 할 수있는 요소를 사용하십시오.

모든 페이지에서 호출하려면 레이아웃 파일에 도우미 또는 요소 호출을 넣으십시오.

특정 페이지에서 예외가 필요한 경우 해당 논리를 도우미 메서드 나 요소에 넣고 뷰에 첨부 된 요청 개체가 원하는 컨트롤러와 동작과 일치하는지 확인할 수 있습니다.

공식 문서 :