2014-12-17 4 views
2

Я только сейчас начинаю входить в рамки CodeIgniter и до сих пор привык к настройке модели-контроллера.PHP CodeIgniter внешний API-вызов

У меня есть класс контроллера с именем «Клиент» и содержит следующий код которого мне нужно посетить:

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;  
    } 
} 

Я работая со следующим кодом, где мне нужно иметь доступ к функции "loadCustomer()" внутри Клиента, чтобы я мог выполнять автоматический вход на основе UserID:

<?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); 

?> 

Как мне это сделать, любая помощь очень ценится?

+0

выполните или, по крайней мере, прочитайте учебник по кодированию: http: //www.codeignit er.com/user_guide/tutorial/index.html Далее прочитайте об Active Record для ваших запросов к базе данных http://www.codeigniter.com/user_guide/database/active_record.html и создайте результаты запроса http: //www.codeigniter. com/user_guide/database/results.html – cartalot

ответ

2

Надеюсь, ваша модель более чем удовлетворяет глаза, потому что модель, которую вы опубликовали, не имеет требуемой структуры классов.

Пожалуйста, ознакомьтесь с этим: док 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; 
    } 

} 
+0

Да, это полностью функциональная модель, я просто показывал, к чему мне нужен доступ. – Juan

+0

А, ну, если вам просто нужен доступ к модели, просто просмотрите мой пример кода, который я разместил. – ajm113