>  기사  >  백엔드 개발  >  CodeIgniter 소개 튜토리얼 1부: 정보 공개

CodeIgniter 소개 튜토리얼 1부: 정보 공개

WBOY
WBOY원래의
2016-08-10 08:48:40953검색

1. MVC

CodeIgniter는 MVC 아키텍처(컨트롤 레이어, 모델 레이어, 뷰 레이어)를 채택합니다.

애플리케이션 아래 폴더에 해당(그림 1):

모든 새 파일은 .php로 끝납니다.

뷰 레이어 뷰 폴더는 HTML 템플릿에 배치됩니다.

모델 계층 모델은 데이터베이스 작업을 위한 코드를 저장합니다

제어 계층 컨트롤러는 논리적 판단을 위한 코드를 저장하고 모델 계층에서 데이터를 얻은 후 뷰 계층으로 보냅니다. 사용자.

CodeIgniter 소개 튜토리얼 1부: 정보 공개

그림 1

기능:

1. 템플릿이 입력 양식을 추가합니다

2. 데이터에 대한 수신 양식 코드를 생성하고 사용자 입력에 대한 간단한 유효성 검사를 수행합니다.

3. 양식 위에 제목, 텍스트, 출시 시간을 출력합니다.

사용된 지식 포인트: CI 도우미 클래스(url) 및 입력 클래스(입력),

및 CI ActiveRecord 및 값을 템플릿에 전달합니다.

2. 초기 구성

1. 데이터베이스 연결

데이터베이스 구성 수정:/application/config/database.php

  'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'test',
    'dbdriver' => 'mysqli',
    'dbprefix' => 'ts_',

2. 기본 경로 수정

CI 프레임워크는 단일 파일 입력 방식을 채택하며, 컨트롤 레이어는 기본적으로 index.php를 통해 접근해야 합니다. 예를 들어, 컨트롤러 폴더 아래에 test라는 클래스가 있고 test에는 home이라는 함수가 있습니다.

액세스 URL은 http://www.example.com/index.php/test/home입니다.

3. 출력 페이지

1. HTML 템플릿 직접 출력

Controllers 폴더와 views 폴더에 두 개의 새 파일을 생성합니다

CodeIgniter 소개 튜토리얼 1부: 정보 공개

Test.php

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Test extends CI_Controller {

    public function home()

    {

        $this->load->view('home');

    }

}

home.php

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Home</title>

</head>

<body>

    <h1>这是我们的主页</h1>

</body>

</html>

브라우저에서 다음과 유사한 주소를 엽니다: http://test.com/index.php/test/home

CodeIgniter 소개 튜토리얼 1부: 정보 공개

2. 데이터베이스 항목 삽입

ts_news 데이터베이스 테이블 생성

CodeIgniter 소개 튜토리얼 1부: 정보 공개

Test.php

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Test extends CI_Controller {

public function __construct()

{

parent::__construct();

$this->load->helper('url');

$this->load->model('news_model');

}

public function home()

{

$this->load->view('home');

}

public function add_news(){

$title = $this->input->get('title',TRUE);

$content = $this->input->get('content');

if ( (strlen($title) < 20 ) or (strlen($content) < 20 ) ){

echo '标题或正文内容过短';

return false;

}

$arr = array(

'id' => '',

'title' => $title,

'content' => $content,

'update_time' => time(),

'create_time' => time()

);

$check = $this->news_model->insert($arr,'news');

if ($check)

{

redirect('test/home');

}

else

{

echo '提交失败';

}

}

}

home.php

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Home</title>

</head>

<body>

<h1>这是我们的主页</h1>

<hr>

<form action="<?php echo site_url('test/add_news'); ?>">

<label for="title">标题</label>

<input type="text" name="title" value="">

<br>

<label for="content">正文</label>

<textarea name="content" cols="30" rows="10"></textarea>

<br>

<input type="submit" value="提交" >

</form>

</body>

</html>

News_model.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class News_model extends CI_Model {

public function __construct()

    {

        parent::__construct();

        $this->load->database();

    }

public function insert($arr,$table)

{

$this->db->insert($table, $arr);

        if ($this->db->affected_rows() > 0)

        {

            return $this->db->insert_id();

        }

        else

        {

            return FALSE;

        }

}

}

412ded80-4884-4a2f-ae37-6ba69cdc4278

493498ee-0f5c-4676-9cec-38e5a3f3e6fd

    3. 查询数据库并输出

    News_model.php增加

public function get_all($table)

    {

        $this->db->select('*');

        $query = $this->db->get($table);

        $query = $query->result_array();

        return $query;

    }

Test.php 的 home修改为:

public function home()

    {

        $news = $this->news_model->get_all('news');

        $data['news'] = $news;

        $this->load->view('home',$data);

    }

홈 템플릿의 본문이 다음으로 수정되었습니다.

<body>

<h1>这是我们的主页</h1>

<?php 

foreach ($news as $key => $value) {

echo '<div>

<h3>'.$value['title'].'</h3>

<span>发布时间:'.date('Y-m-d H:i:s',$value['create_time']).'</span>

<p>'.$value['content'].'</p>

</div>';

}

?>

<hr>

<form action="<?php echo site_url('test/add_news'); ?>">

<label for="title">标题</label>

<input type="text" name="title" value="">

<br>

<label for="content">正文</label>

<textarea name="content" cols="30" rows="10"></textarea>

<br>

<input type="submit" value="提交" >

</form>

</body>

효과를 보려면 새로고침하세요.

CodeIgniter 소개 튜토리얼 1부: 정보 공개

위 내용은 CodeIgniter 입문 튜토리얼의 첫 번째 부분인 정보 공개(Information Release)를 내용의 일부로 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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