2014-09-07 5 views
0

템플릿 파일에서 if 문을 사용하여 함수를 실행하고 싶습니다.SilverStripe if 문 내에서 함수 호출 함수 호출

너무 쉽지만 if 문 내에 함수를 추가하면 아무 것도 반환되지 않습니다.

조건부 문 밖에서 함수를 호출 할 수 있고 조건부 상태 내의 다른 데이터가 반환되므로 함수 및 조건문이 작동합니다.

page.php

Hello, $thisIsAFunction 

결과

class Page_Controller extends ContentController { 

    public function thisIsAFunction() { 
    return "I am a function"; 
    }  

} 

page.ss :

Hello, 
+0

이것은 멤버 함수처럼 보입니다. -> 연산자를 사용하여 객체에서 호출해야합니다. Silverstripe에 익숙하지 않지만 pagecontroller가 렌더링하려고하는 뷰 내부에 인스턴스 자체를 가지고 있다고 가정합니다. 설명서를 읽으십시오. $ controller-> thisIsAFunction();이 될 수도 있습니다. 또는 뭔가. –

답변

4

$thisIsAFunction이 다른 값을 올바른 값으로 출력하는 경우 범위 문제가있는 것 같습니다. <% with %> 또는 <% loop %> 블록 내부에 이러한 변경 범위가 없는지 확인하십시오. 그렇다면 $Top.thisIsAFunction을 사용하십시오.

+0

감사합니다. irogue, 범위 문제였습니다. – user742736

0

가 Page_Controller보다는 Page 클래스에 기능을 넣어보십시오.