【问题标题】:PHP CodeIgniter external API callPHP CodeIgniter 外部 API 调用
【发布时间】:2015-02-16 11:50:36
【问题描述】:

我刚刚开始接触 CodeIgniter 框架,并且还在习惯模型-控制器-视图设置。

我有一个名为“Customer”的控制器类,它包含以下我需要访问的代码:

function loadCustomer(){
    if(!empty($_POST)){
        $result['Success'] = 0;
    $user = $this->User->LoadUser($_POST['UserID']);
    if($user){
        $result['Success'] = 1;
            $user->Package = $this->User->GetPrimaryPackage($user->UserID);
            $user->AccountAlerts = $this->User->GetAccountAlertOptions($user->UserID);
            $_SESSION['User'] = $user;
            $_SESSION['UserLoggedIn'] = true;

            $result['User'] = $user;
            $result['UserLoggedIn'] = true;

        }

        echo json_encode($result);
    }
    else
        return null;
}

名为“用户”的模型包含以下内容:

function LoadUser($UserID = null){
    if(!$UserID){
        trigger_error("No userid supplied.", E_USER_ERROR);
        exit();
    }
    $result = $this->db->query("SELECT * FROM mydb.tblUsers where UserID='$UserID';")->row();
    if(!empty($result)){
        return $result;
    }
    else{
        return null;    
    }
}

我正在使用以下代码,我需要能够访问 Customer 中的 "loadCustomer()" 函数,以便我可以根据用户 ID 执行自动登录:

<?php

$con = mysqli_connect('localhost','root','root','mydb');
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"mydb");

$sql = "SELECT * FROM incoming_calls";
$result = mysqli_query($con,$sql);

while ($row = mysqli_fetch_array($result)) {
    if (!empty($row)) {
        $number = $row['phone_number'];
    }
}

$sql = "SELECT Username, UserID, Name
    FROM tblUsers 
    WHERE PhoneHome='$number' OR PhoneCell='$number' OR PhoneWork='$number'";

$result = mysqli_query($con,$sql);

while ($row = mysqli_fetch_array($result)) {
    $userArray[] = array("name" => $row['Name'], "username" => $row['Username'], "user_id" => $row['UserID']);
}

if (!empty($userArray)) {
    echo json_encode($userArray);
}

mysqli_close($con);

?>

我该怎么做,非常感谢任何帮助?

【问题讨论】:

标签: php codeigniter mysqli


【解决方案1】:

我希望您的模型有更多的外观,因为您发布的模型没有所需的类结构。

请查看以下内容: https://ellislab.com/codeigniter/user-guide/general/models.html

CodeIgniter 的文档将成为您最好的朋友。 ...在大多数情况下,我遇到了一些文档丢失某些内容的情况,但这种情况非常罕见,此时 Google 是您最好的朋友。

我还推荐使用 CodeIgniter 的会话库。因为它更不容易出错,更容易使用,并且包含一些简洁的功能......

https://ellislab.com/codeigniter/user-guide/libraries/sessions.html

示例代码:

控制器:

class MyPage extends CI_Controller
{
    function index()
    {
          $this->load->model("user");
          $sum = $this->user->doWork(4, 4);
    }

}

型号

 class User extends CI_Model {

      function __construct()
    {
        // Call the Model constructor
        parent::__construct();
    }

    public function doWork($x, $y)
    {
      return $x + $y;
    }

 }

【讨论】:

  • 是的,是一个功能齐全的模型,我只是展示了我需要访问的内容。
  • 啊,如果您只需要访问模型,只需查看我发布的示例代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
相关资源
最近更新 更多