문제

안에 CakePHP 1.2 내가 사용하는 앱

<?php $session->flash();?>

"기록 편집됨"과 같은 메시지를 출력합니다.잘 작동합니다.

그러나 메시지가 희미해지는 "해제"라는 링크를 추가하고 싶습니다.링크를 구성하는 방법을 알고 있지만 flass 메시지의 출력에 삽입하는 방법을 모르겠습니다.

플래시 메시지는 다음과 같이 포장됩니다. DIV tag.해당 div에 해제 코드를 삽입하고 싶지만 방법을 모르겠습니다.

도움이 되었습니까?

해결책 3

이것을 알아 냈습니다 :레이아웃 폴더에 새 레이아웃을 만듭니다.

layouts/message.ctp

해당 레이아웃에 콘텐츠를 출력하는 호출을 포함합니다.

<?php echo $content_for_layout; ?>

그런 다음 플래시 메시지를 설정할 때 사용할 레이아웃을 지정합니다.

$this->Session->setFlash('Your record has been created! Wicked!','message');

다른 팁

당신은 사용하고 싶습니다 Setflash 기능. SetFlash를 기본값으로 빈 문자열을 전달하면 DIV에 메시지를 감싸지 않고 그대로 저장하지 않습니다. 이렇게하면 원하는 마크 업을 표시하거나 저스틴이 게시 한대로 메시지에 다른보기 페이지를 사용할 수 있으므로보기와 컨트롤러를 혼합하지 않습니다.

jQuery로이를 달성 할 수 있습니다.

$(document).ready(function() {

    $("#flashMessage").each(function() {
        $close = $("<span class='close'>Close</span>");
        $close.click(function () {
            $(this).parent().hide("slow");
        });
        $(this).append($close);
    });

});

당신은 약간의 CSS와 함께 그것을 예쁘게해야 할 것이지만, 나는 당신이 아이디어를 얻을 것이라고 확신합니다.

기본 방법은/앱/뷰/레이아웃에서 Flash.ctp를 만드는 것입니다. 이렇게하면/Cake/Libs/View/Layout에서 찾을 수있는 기본 Flash.ctp가 무시됩니다. 따라서 추가 매개 변수를 사용할 필요가 없습니다.

BTW : 이것은 모든 CakePHP 표준보기 및 레이아웃에 적용됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top