ホームページ >バックエンド開発 >PHPチュートリアル >ci フレームワーク (2)、ci フレームワーク_PHP チュートリアル

ci フレームワーク (2)、ci フレームワーク_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:23:31925ブラウズ

ci フレームワーク (2)、ci フレームワーク

カスタム SQL ステートメント

提供された API が SQL ステートメントの要件を満たさない場合、通常、CI はニーズを満たすことができる比較的強力な汎用 SQL API も提供します。

リーリー

カスタム拡張コントローラー application/core に新しい MY_Controller.php を作成します リーリー 同時に、application/config/config.phpで設定する必要があります:

リーリー

カスタム拡張モデル

application/modelsにuser_model.phpを作成します

リーリー コントローラーでカスタムモデルを呼び出す アプリケーション/コントローラー: リーリー リーリー リーリー

モデルをロードするときに、モデルに名前を付けることができます:

リーリー

URL 関連機能

フォームの検証中に、データをコントローラーに渡す必要があります。 アクションを正確かつスケーラブルに記述する方法:

リーリー

user/add.php ビュー:

リーリー

index.php ディレクトリの場合は、次を使用します: リーリー このAPI。 同時に、毎回 URL をロードするのは非常に面倒です。自動的にロードするように設定し、config/config.php で変更することもできます。 リーリー

おそらくこの自動読み込みは、以降のバージョンでは利用できなくなるでしょう。

ルーティング

$route

['rouxx/showxx/([d]+).html'] = 'rou/show/$1';

//

この文を挿入

ページネーション 知っておくべきいくつかのパラメータ

ci フレームワーク (2)、ci フレームワーク_PHP チュートリアルレコードは合計何件ありますか 1 ページにいくつのレコードを含める必要がありますか 合計何ページ 現在のページの前後に表示されるページネーションリンクの数

  • 设置一些CI分页类基本参数
<span>//</span><span>总条数</span>
<span>$config</span>['total_rows'<span>]
</span><span>//</span><span>一页显示几条</span>
<span>$config</span>['per_page'<span>]
</span><span>//</span><span>定义当前页的前后各有几个数字链接</span>
<span>$config</span>['num_links'<span>]
</span><span>//</span><span>定义没有分页参数,主URL</span>
<span>$config</span>['base_url']
  • 调用CI的分页类
<span>$this</span>->load->library('pagination');
  • 执行分页方法
<span>$this</span>->pagination->initialize(<span>$config</span>);
  • 输出分页链接
<span>echo</span> <span>$this</span>->pagination->create_links();
  • 查询部分数据(limit)
<span>echo</span> <span>$this</span>->db->limit(<span>$num</span>,<span>$start</span>);  <span>//</span><span>从$start查$num条</span>
<?<span>php 
</span><span>if</span> ( ! <span>defined</span>('BASEPATH')) <span>exit</span>('No direct script access allowed'<span>);

</span><span>class</span> Page <span>extends</span><span> CI_Controller {

    </span><span>public</span> <span>function</span><span> user_add(){
        </span><span>$this</span>->load->model('test_m'<span>);

        </span><span>for</span> (<span>$i</span> = 1;<span>$i</span> <= 100;<span>$i</span>++<span>){
            </span><span>$name</span> = 'u'.<span>$i</span><span>;
            </span><span>$arr</span> = <span>array</span>("usid"=><span>$i</span>,"uname"=><span>$name</span>,"upass"=>123456<span>);
            </span><span>$this</span>->test_m->user_insert(<span>$arr</span><span>);

        }
    }

    </span><span>public</span> <span>function</span><span> pagelist(){
        </span><span>$this</span>->load->model('test_m'<span>);
        </span><span>$user</span> = <span>$this</span>->test_m-><span>user_select_all();
        </span><span>$allnum</span> = <span>count</span>(<span>$user</span><span>);
        </span><span>$pagenum</span> = 20<span>;

        </span><span>$config</span>['total_rows'] = <span>$allnum</span><span>;
        </span><span>$config</span>['per_page'] = <span>$pagenum</span><span>;
        </span><span>$config</span>['num_links'] = 3<span>;
        </span><span>$config</span>['base_url'] = "/CI/index.php/page/pagelist"<span>;
        </span><span>$config</span>['use_page_numbers'] = <span>true</span><span>;

        </span><span>$this</span>->load->library('pagination'<span>);
        </span><span>$this</span>->pagination->initialize(<span>$config</span><span>);

        </span><span>var_dump</span>(<span>$this</span>->pagination-><span>create_links());
        </span><span>echo</span> <span>$this</span>->pagination-><span>create_links();

        </span><span>echo</span> "<br />"<span>;
        </span><span>$id</span> = <span>$this</span>->uri->segment(3);  <span>//</span><span>获得url第三段字符</span>
        <span>$id</span> =<span>$id</span> ? <span>$id</span>:1<span>;
        </span><span>$start</span> = (<span>$id</span> - 1) * <span>$pagenum</span><span>;
        </span><span>$list</span> = <span>$this</span>->test_m->user_select_limit(<span>$start</span>,<span>$pagenum</span><span>);
        </span><span>var_dump</span>(<span>$list</span><span>);
    }
}</span>

上传文件                                                                                    

视图 /views/up.php:

<span><</span><span>html</span><span>></span>
    <span><</span><span>form </span><span>action</span><span>="ci/CodeIgniter_2.2.0/index.php/upload/up"</span><span> method</span><span>="post"</span><span> enctype</span><span>="multipart/form-data"</span><span>></span>
        <span><</span><span>input </span><span>type</span><span>="file"</span><span> name</span><span>="upfile"</span> <span>/></span>
        <span><</span><span>input </span><span>type</span><span>="submit"</span><span> name</span><span>="sub"</span><span> value</span><span>="提交"</span> <span>/></span>
    <span></</span><span>form</span><span>></span>
<span></</span><span>html</span><span>></span>

控制器:

  • 定义一个数组,设置一些与上传相关的参数
<span>$config</span>['upload_path'] = './uploads/'<span>;
</span><span>//</span><span>设置允许上传的类型</span>
<span>$config</span>['allowed_types'] = 'gif|jpg|png'<span>;
</span><span>$config</span>['max_size'] = '100'<span>;
</span><span>//</span><span>如果是图片还可以设置最大高度和宽度</span>
<span>$config</span>['max_height'] = 768<span>;
</span><span>$config</span>['max_width'] = 1024;

还可以设置其他的一些额外参数,详细看用户手册。

  • 调用CI的上传通用类,并执行上传
<span>//</span><span>upload为调用的类名,全小写</span>
<span>$this</span>->load->library('upload',<span>$config</span><span>);
</span><span>//</span><span>如果上传框的name写的是userfile,那就不用传参数了,如果不是,把name的值传进去</span>
<span>$this</span>->upload->do_upload('上传框的name');
  • 接收出错信息或成功信息
<span>//</span><span>出错信息</span>
<span>$error</span> = <span>array</span>('error' => <span>$this</span>->upload-><span>display_error());
</span><span>//</span><span>成功信息</span>
<span>$data</span> = <span>array</span>('upload_data' => <span>$this</span>->upload->data());
<?<span>php 
</span><span>if</span> ( ! <span>defined</span>('BASEPATH')) <span>exit</span>('No direct script access allowed'<span>);

</span><span>class</span> Upload <span>extends</span><span> CI_Controller {
    </span><span>//</span><span>显示带表单的视图</span>
    <span>public</span> <span>function</span><span> index(){
        </span><span>$this</span>->load->view('up'<span>);
    }
    </span><span>//</span><span>显示上传信息</span>
    <span>public</span> <span>function</span><span> up(){
        </span><span>$config</span>['upload_path'] = './uploads/'<span>;
        </span><span>$config</span>['allowed_types'] = 'gif|jpg|png'<span>;
        </span><span>$config</span>['max_size'] = "2000"<span>;
        </span><span>$this</span>->load->library('upload',<span>$config</span><span>);
        </span><span>//</span><span>打印成功或错误的信息</span>
        <span>if</span>(<span>$this</span>->upload->do_upload('upfile'<span>))
        {
            </span><span>$data</span> = <span>array</span>("upload_data" => <span>$this</span>->upload-><span>data());
            </span><span>var_dump</span>(<span>$data</span><span>);
        }
        </span><span>else</span><span>
        {
            </span><span>$error</span> = <span>array</span>("error" => <span>$this</span>->upload-><span>display_errors());
            </span><span>var_dump</span>(<span>$error</span><span>);
        }
    }
}</span>

Session                                                                                   

利用CI类实现session登录

  • 修改配置文件(config.php)
<span>//</span><span>生成一个随机不重复的字符串走位加密的key保存到config.php的encryption_key中</span>
<span>$config</span>['encryption_key']='adb8bf6d0ac4e17b42a80941582497a4';
  • 加载SESSION类
<span>$this</span>->load->library('session');
  • 创建SESSION
<span>$array</span> = <span>array</span>('id'=>3,'name'=>'jack'<span>);
</span><span>$this</span>->session->set_userdata(<span>$array</span>);
  • 查看SESSION
<span>$this</span>->session->userdata(session名);
  • 删除SESSION
<span>$this</span>->session->unset_userdata('SESSION名');

ci フレームワーク (2)、ci フレームワーク_PHP チュートリアル$config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_expire_on_close'] = FALSE; $config['sess_encrypt_cookie'] = TRUE $config['sess_use_database'] = FALSE; $config['sess_table_name'] = 'ci_sessions'; $config['sess_match_ip'] = FALSE; $config['sess_match_useragent'] = TRUE; $config['sess_time_to_update'] = 300;

  • 一次性数据,只能读取一次
<span>//</span><span>设置</span>
<span>$this</span>->session->set_flashdata('test','aaaaa'<span>);
</span><span>//</span><span>读取</span>
<span>$test</span> = <span>$this</span>->session->flashdata('test');

php CI 框架怎从数据库中取值(一个二维数组)以表格的形式显示到view层

控制层
function test_func(){
//获取model页面需要的两个参数
$competition_id = $_GET["competition_id"];
$report_class = $_GET["report_class"];
$this->load->model("Action"); //引入model
$data["head"] = $this->Action->get_report_item($competition_id, $report_class); //引用model的函数
$this->load->view("test_result",$data); //将结果显示在test_result.php页面中
}
view层:
8a44a4ccd3189cbcdc4134660d5fb4c4
c2eb0c8ca3e285258ac17d45edf6295c添加结果显示d8b036b3d650da4c1e8fc3d87d693360
8291983c0d67696f62a5d3d9bba8793f //此处选择了循环输出从控制层传输的结果
d277d620373d69aff05ac57a1835c373
e1fa2e7e437f3fbef7c5214beac6fc32
b6c5a531a458a2e790c1fd6421739d1c字段名称(含义)bf2ac571d69f1511b31d11e827d927fe //该td中显示的是你从数据库、即model层中获取到的数据的含义,想显示多少,显示哪个,在这里确认
2d906c57f55b1ec83a7abf24e669c042
e5bcf76e6571bce4213ba481f191b522
e1fa2e7e437f3fbef7c5214beac6fc32
b6c5a531a458a2e790c1fd6421739d1c52f3ce80a4b39d067087dcd3dc930ff0test; ?>bf2ac571d69f1511b31d11e827d927fe
2d906c57f55b1ec83a7abf24e669c042
e1fc7f6cef38cd1cd5ad96cc223891d8
91f722ca9dfa10b57d2e4f9620a87b55
643cf39597f76fe8774961b137e6a6c7
 

php CI框架问题?小弟是初学者

$title をビュー ファイル内で直接使用できます
CI は、$data の各項目に基づいて変数を宣言でき、ビュー内で直接呼び出すことができます
これが CI アーキテクチャの仕組みです。具体的にはどのように宣言すればよいでしょうか。詳しく調べてませんでした

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/838913.html技術記事 ci フレームワーク (2)、ci フレームワークのカスタム SQL ステートメント。提供される API が SQL ステートメントの要件を満たさない場合、通常は自分で SQL ステートメントを作成します。CI はより強力な SQL ステートメントも提供します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。