Kết quả 1 đến 5 của 5
  1. #1
    CI New xperia_sp's Avatar
    Ngày tham gia
    05-07-2013
    Bài viết
    5
    Cảm ơn
    2
    Được cảm ơn 0 trong 0 bài viết

    Hỏi về lớp mở rộng.

    Chào các bạn.!
    Mình mới tìm hiểu về codeIgniter và mình gặp vấn đề thế này mong anh em giúp đỡ.
    Mình xây dựng hệ thống như thế này.
    /- Application
    /-- controllers
    /-- models
    /-- views
    /-- libraries
    /--- Auth.php
    /-- Modules
    /--- Admin
    /---- Controllers
    /---- models
    /---- views
    /--- Site
    /---- Controllers
    /---- models
    /---- views
    /- System
    /- index.php

    Vấn đề của mình là khi mình tạo lớp mở rộng Auth{} để xử lý các quá trình đăng nhập, kiểm tra đăng nhập.....
    Mình muốn xử lý database trong lớp này mà ko được.
    class Auth{

    public function xuly($sql){

    $this->load->database()
    $query = $this->db->select($sql);
    $result = $query->result_array();
    }
    }

    Cho mình hỏi là làm thế nào để kéo lớp xử lý database của CI vào trong lớp Auth này để sử dụng được a?
    thank's.!

  2. #2
    Moderator 2webvn.com's Avatar
    Ngày tham gia
    27-03-2013
    Bài viết
    203
    Cảm ơn
    24
    Được cảm ơn 119 trong 81 bài viết
    Trích dẫn Gửi bởi xperia_sp Xem bài viết
    Chào các bạn.!
    Mình mới tìm hiểu về codeIgniter và mình gặp vấn đề thế này mong anh em giúp đỡ.
    Mình xây dựng hệ thống như thế này.
    /- Application
    /-- controllers
    /-- models
    /-- views
    /-- libraries
    /--- Auth.php
    /-- Modules
    /--- Admin
    /---- Controllers
    /---- models
    /---- views
    /--- Site
    /---- Controllers
    /---- models
    /---- views
    /- System
    /- index.php

    Vấn đề của mình là khi mình tạo lớp mở rộng Auth{} để xử lý các quá trình đăng nhập, kiểm tra đăng nhập.....
    Mình muốn xử lý database trong lớp này mà ko được.
    class Auth{

    public function xuly($sql){

    $this->load->database()
    $query = $this->db->select($sql);
    $result = $query->result_array();
    }
    }

    Cho mình hỏi là làm thế nào để kéo lớp xử lý database của CI vào trong lớp Auth này để sử dụng được a?
    thank's.!
    Bạn tạo Lib or Helper để load đc DB or các core khác của CI thì bạn dùng:

    PHP Code:
        $CI =& get_instance(); 
    PHP Code:
    class Auth{
         public function 
    xuly($sql){
            
    $CI =& get_instance();
            
    $CI->load->database();
            
    $query $CI->db->select($sql);
            
    $result $query->result_array();
        }

    Sửa lần cuối bởi 2webvn.com; 05-07-2013 lúc 10:49 AM.

  3. The Following User Says Thank You to 2webvn.com For This Useful Post:

    xperia_sp (05-07-2013)

  4. #3
    CI New xperia_sp's Avatar
    Ngày tham gia
    05-07-2013
    Bài viết
    5
    Cảm ơn
    2
    Được cảm ơn 0 trong 0 bài viết
    Mình cũng làm thế mà vẫn bị lỗi. Đây là code của mình mong bạn xem giúp
    <?php (defined('BASEPATH')) OR exit('No direct script access allowed');
    class Auth {
    protected $_username =null;
    protected $_password = null;
    protected $_colum_username = null;
    protected $_colum_password = null;
    protected $_tableName = null;

    public function __construct($tableName=null, $colum_username=null, $colum_password=null){
    if($tableName !=null){
    $this->_tableName = $tableName;
    }

    if($colum_username != null){
    $this->_colum_username = $colum_username;
    }

    if($colum_password != null){
    $this->_colum_password = $colum_password;
    }
    }
    public function set_Table($tableName){
    return $this->_tableName = $tableName;
    }

    public function set_colum_username($colum_username){
    return $this->_colum_username = $colum_username;
    }

    public function set_colum_password($colum_password){
    return $this->_colum_password = $colum_password;
    }


    public function set_username($username){
    return $this->_username = $username;
    }

    public function set_password($password){
    return $this->_password = $password;
    }

    public function check_user(){
    if($this->_tableName != null && $this->_colum_username != null && $this->_colum_password != null
    && $this->_username != null && $this->_password != null)
    {

    $sql = "SELECT * FROM ".$this->_tableName." WHERE ".$this->_colum_username." = '".$this->_username." '
    AND ".$this->_colum_password." = '".$this->_password." '";
    $CI = & get_instance();
    $CI->load->database();
    $query = $CI->db->select($sql);
    echo "<pre>";
    print_r($query->result_object());
    echo"</pre>";
    }

    }
    }
    controller Amin.php

    <?php
    class Admin extends Controller{
    public function index(){

    }

    public function view(){

    $auth = new Auth('account','username','password');
    $auth->set_username('admin');
    $auth->set_password('1234');
    $auth->check_user();
    $this->load->library('auth');
    $this->auth->set_Table('account');
    $this->auth->set_colum_username('username');
    $this->auth->set_colum_password('password');
    $this->auth->set_username('admin');
    $this->auth->set_password('1234');
    $this->auth->check_user();
    }
    }
    Khi chạy thì kết quả ra thế này.

    Fatal error: Call to undefined method CI_DB_mysql_driver::result_object() in D:\xampp\htdocs\demo_codeigniter\application\libra ries\Auth.php on line 53

  5. #4
    Moderator 2webvn.com's Avatar
    Ngày tham gia
    27-03-2013
    Bài viết
    203
    Cảm ơn
    24
    Được cảm ơn 119 trong 81 bài viết
    PHP Code:
    $CI = & get_instance();
    $CI->load->database();
    $query $CI->db->query($sql); // thay select($sql) = query($sql)
    echo "<pre>";
    print_r($query->result()); //Bạn thử cái này xem nhé
    echo"</pre>"
    Bạn thử code trên xem nhé :D
    Sửa lần cuối bởi 2webvn.com; 05-07-2013 lúc 12:32 PM.

  6. The Following User Says Thank You to 2webvn.com For This Useful Post:

    xperia_sp (05-07-2013)

  7. #5
    CI New xperia_sp's Avatar
    Ngày tham gia
    05-07-2013
    Bài viết
    5
    Cảm ơn
    2
    Được cảm ơn 0 trong 0 bài viết
    thank's.! mình quên mất. lại dùng select.hi :yociexp103:

Chia sẽ và Bình Luận chủ đề Hỏi về lớp mở rộng. trên facebook

Các từ khóa xuất hiện trên google của chủ đề

Chưa có từ khóa lên top google

Tag của Chủ đề này - Hãy Thêm Tags Để bài viết nhanh lên top google

Quyền viết bài

  • Bạn không thể đăng chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi đính kèm
  • Bạn không thể sửa bài
  •