문제

Zend Framework 및 뷰의 URL 메소드 사용 :

$this->url(array('field1' => this, 'field2' => 'is', 'field3' => 'my example'), 'route_name');
.

여기서 route_name은 URL 경로의 이름이고 각 필드 #은 데이터베이스에서 검색됩니다.

기본적으로 컨트롤러 / 동작 이름의 공백을 더하기 기호로 변경하여 다음과 같이 보았습니다.

www.example.com/this is my example
.

~

www.example.com/this+is+my+example
.

나는 +에서 sepinare를 변화시키고 싶습니다

와 같은 것을 가지고 있습니다.
www.example.com/this-is-my-example
.

다른 글자 : 분리를 변경하는 방법 Zend URL의 캐릭터? 내가 성공하지 않고 시도한 방법으로 문서화 된 방법으로.

수행 방법에 대한 철저한 설명이 많이 감사 할 것입니다.

edit2 : 누구도 관심이있는 경우 문제가 어디에 있는지 알고 있습니다. URL이 어셈블되는 방식에서 나온 것입니다. 아닌 영숫자가 아닌 모든 문자가 기대되는 모든 문자와 _ 및 공백을 +로 변환하는 URLENCODE를 사용합니다. 문자를 바꾸는 것보다 문자를 바꾸려면 URL을 수동으로 수동으로 만들거나 (Aporat가 제안 함) 문자를 교체하는 사용자 정의 URL 함수를 만들거나 (Aporat에서 제안 함) ...

감사합니다!

도움이 되었습니까?

해결책

정말로하고 싶다면 Zend_View_Helper_Url View Helper를 확장하고 URL 로직을 뷰 도우미에 추가 할 수 있습니다.

<?php
namespace Application\View\Helper;

 class MyUrl extends \Zend_View_Helper_Url
 {
    /**
     * Generates an url given the name of a route.
     *
     * @access public
     *
     * @param  array $urlOptions Options passed to the assemble method of the Route object.
     * @param  mixed $name The name of a Route to use. If null it will use the current Route
     * @param  bool $reset Whether or not to reset the route defaults with those provided
     * @return string Url for the link href attribute.
     */
     public function myUrl(array $urlOptions = array(), $name = null, $reset = false, $encode = true)
     {

     return str_replace('+', '-', parent::url($urlOptions, $name, $reset, $encode));
     }
}
.

을 누른 다음 새 뷰 도우미를로드하면됩니다.

        $helper = new \Application\View\Helper\MyUrl;
        $this->view->registerHelper($helper, 'myUrl');
.

다른 팁

불행히도, url(...) 함수를 호출하기 전에 아무 것도 설정할 수 없으며 원하는 것을 얻을 수 있습니다.그 이유는 URL이 어셈블 될 때 PHP urlencode(...) 기능을 사용한다는 것입니다.

, 당신은 여전히 많은 옵션이 있습니다 :

1) url(...) 함수를 사용하고 URL을 수동으로 만들지 마십시오.(가장 좋은 옵션)

2) url(...)와 같이 작동하는 새로운 도우미를 만듭니다.하지만 수행 할 것을 얻기 위해 기능에 추가 변경 사항을 추가합니다.

3) URL (...) 함수의 출력을 사용하고 str_replace+를 변경하여 -를 변경하십시오.(이 옵션을 권장하지는 않습니다)

개인적 으로이 종류의 문제를 피하기 위해 수동으로 모든 URL을 생성합니다.

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