>백엔드 개발 >PHP 튜토리얼 >tp5와 tp3의 차이점

tp5와 tp3의 차이점

巴扎黑
巴扎黑원래의
2016-11-22 14:29:224440검색

TP5는 더 유연하고 덜 부풀어 오르는 등 큰 변화를 가져왔습니다. php7, 단위 테스트 등과 같은 몇 가지 흥미로운 기능을 추가했습니다. 그러나 TP3에서 개발된 많은 습관은 TP5에서 변경되어야 할 수도 있습니다.

1 라우팅 변경
tp3에 정의된 경로

Java 코드

'URL_ROUTE_RULES' =>( //라우팅 규칙 정의

'/^password(/)*$/' => '/Admin/Auth/password',

),



http를 이렇게 사용하세요 : //xx.com/password 및 http://xx.com/Admin/Auth/password
는 모두 동일한 주소인 http://xx.com/Admin/Auth/password

에 액세스할 수 있습니다. 이는 tp5에서는 불가능합니다. Route.php 라인 1251

Java 코드

를 참조하세요. if (isset(self::$rules['name'][$name]) | | isset(self::$rules['name'][$name2])) {                                                         >

'비밀번호' => ['관리자/인증/비밀번호', ['방법' =>'get']],

사용 구성된 라우팅 액세스는 정상이지만 admin/auth/password

http://xxx/password로 점프하지 않습니다.

http://xxx/admin/auth/password

Java 코드

[0] Route.php의 HttpException으로 접속 시 오류가 보고됩니다. 1252행

잘못된 요청: 관리자/인증/비밀번호



              $route = [$module, $controller, $action];                    ~                                                                                                    er($module . '/' . Loader::parseName($controller, 1) . $action);

$name2 = ''; 바인딩 ) && $module == $bind) {

$name2 = strtolower(Loader::parseName($controller, 1) . '/' . $action)

}

if (isset(self::$rules['name'][$name]) || isset(self::$rules['name'][$name2])) {

                                                                                              ~ > ];

}

2 모델의 find, select 및 기타 메소드 반환되는 것은 데이터가 아닌 Model 객체입니다. getData()를 사용하여 원본 데이터를 얻을 수 있습니다. db()를 사용하여 데이터를 쿼리하도록 모델에서 메서드를 정의한 다음 호출을 위해 컨트롤러에 메서드를 노출하는 것이 좋습니다.

3 foreach에 데이터를 추가하기 위해 Model()->save();를 사용하는 경우 ->isUpdate(false)를 추가해야 합니다. 그렇지 않으면 첫 번째 항목만 삽입되고 나머지는 삽입됩니다. 업데이트됩니다. 이것은 아마도 버그일 것입니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.