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/passwordhttp://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)를 추가해야 합니다. 그렇지 않으면 첫 번째 항목만 삽입되고 나머지는 삽입됩니다. 업데이트됩니다. 이것은 아마도 버그일 것입니다.