CI 묻고 답하기

제목 페이지네이팅 링크 paginating
카테고리 CI 4 관련
글쓴이 장까망 작성시각 2024/02/11 11:24:43
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 2483   RSS

버전: CI4.4.4

 

안녕하세요.

페이지네이팅 구현 중에 문제가 발생하였습니다.

10개, 5개 또는 3개씩 끊어서 출력하는 페이징은 잘 작동합니다.

하지만, 페이지의 링크에서 문제가 발생합니다.

 

#문제점

제가 예상하는 2페이지의 정상적인 페이지는 localhost/notice?page=2 입니다. 수동으로 브라우저 주소창에 주소를 입력하면 페이지가 정상적으로 나타답니다.

하지만, 2페이지의 링크 주소가  localhost/ci4/index.php/notice?page=2 로 설정이 되며 404 에러 메세지를 출력합니다.

못보던 localhost/ci4/index.php/notice?page=2 때문에 에러가 발생하는 듯 합니다.

위의 링크 중에서 /ci4/ 라는 프로젝트 폴더명을 제외하고싶습니다.

페이징의 다음 페이지의 주소를 담당하는 부분이 어디인지만 알려주셔도 이거저거 테스트 해보겠습니다.

 

환경설정, Controllers, Views 의 정보를 알려드립니다. 

**페이지의 이동할때 링크는 수동적으로 <a href="/notice">공지사항</a> 입력합니다만 현재 페이지네이팅 링크는 자동으로 생성이 되는 것으로 알고 있습니다. 

 

#환경설정 app\Config\App.php

public string $baseURL = 'http://localhost/ci4/';

**indexPage = '' 으로 변경하여도 여전히 localhost/ci4/notice?page=2 로 불필요한 ci4 가 존재합니다.

#환경설정 .env

app_baseURL = 'http://localhost/ci4/'

 

#Controllers>Notice.php

<?php

namespace App\Controllers;

use App\Models\NoticeModel;

use CodeIgniter\Exceptions\PageNotFoundException;

class Notice extends BaseController{   

    public function index()    {       

    $model = model(NoticeModel::class);

        $data = [           

          // 'notice'    => $model->getNotice(),        //모두 출력

          'notice'    => $model->paginate(3),    //pagination           

          'pager'     => $model->pager,           //pagination           

          ];

        return view('templates/header', $data)

            . view('notice/index')

            . view('templates/footer');   

    }

}

 

#Views\notice\index.php

.... 리스트 출력 ...

<?php echo $pager->links() ?>       

<?php echo $pager->simpleLinks() ?>

 

#Config\Routes.php

<?php

use CodeIgniter\Router\RouteCollection;

 

$routes */$routes->get('/', 'Home::index');

use App\Controllers\Notice;

 

$routes->get('notice', [Notice::class, 'index']);

$routes->get('notice/new', [Notice::class, 'new']);

$routes->post('notice', [Notice::class, 'create']);

$routes->get('notice/(:segment)', [Notice::class, 'show']);

$routes->get('notice/edit/(:segment)', [Notice::class, 'edit']);

$routes->get('notice/delete/(:segment)', [Notice::class, 'delete']);

 다음글 결제 이후 세션 사라지는 부분 (3)
 이전글 CentOs7 / ftp root계정 접속 관련 질문입... (3)

댓글

장까망 / 2024/02/11 20:41:20 / 추천 0

스스로 답글을 남깁니다.

baseURL을 localhost/ci4/ 에서 localhost/ 로 변경하였더니만 정상적으로 작동합니다.