Codeigniter Noob Вопрос - активная запись и результаты? - PullRequest
0 голосов
/ 18 декабря 2009

Я пишу простое приложение. Мне нужно заблокировать пользователя со страницы, если его кредит <0. </p>

У меня есть таблица «User_profiles» со строкой «credit».

Как я могу настроить модель совместно с контроллером для отправки пользователя на другую страницу, если значение «credit» равно 0?

Это должно быть просто, но я новичок в select-> where вещи ...

Это тоже должен быть ряд текущего пользователя - я пока не знаю, как хорошо обходить массивы.

Спасибо!

1 Ответ

4 голосов
/ 18 декабря 2009

Ну, самое простое решение - просто загрузить другое представление ...

Что касается модели, то это будет выглядеть так:

class UserModel extends Model {
    public function getUserCredit($id) {
        $this->load->database();
        //effectively generates: SELECT `credit` FROM `User_profiles` WHERE `id`=$id
        $query = this->db->select('credit')->where('id',$id)->get('User_profiles');
        //row() executes the query for a single result, returns the credit property
        return $query->row()->credit;
    }
}

Тогда в контроллере:

class Users extends Controller {
    //....
    public function credit() {
        $this->load->model('userModel','users');
        // assuming the session library has been loaded
        $user_id = $this->session->userdata('id');
        $credit = $this->users->getUserCredit($user_id);
        if ($credit == '0') $this->load->view('users/no_credit');
        else $this->load->view('users/credit');
    }
}

Это не проверено, но это должно, по крайней мере, помочь вам понять идею.


  1. Когда вы запрашиваете страницу /users/credit/1, CI вызывает действие Users::credit(1).

  2. Затем загружается UserModel как $this->users

  3. Вы звоните $this->users->getUserCredit(1), что переводится как UserModel::getUserCredit(1), для хранения как $credit

  4. Модель загружает базу данных.

  5. Вы указываете БД на select('credit') (выберите столбец credit), where('id',1) (где id = 1), затем get('User_profiles') (получите соответствующие строки из таблицы User_profiles). Это возвращает запрос, который вы сохраняете как $query для удобства чтения.

  6. getUserCredit возвращает свойство кредита для однострочного результата запроса

  7. Если $credit == 0, вы загружаете представление views/users/no_credit.php

  8. В противном случае вы загружаете представление views/users/credit.php (принято называть представления в соответствии с действиями, которые они представляют, и помещать их в папку, соответствующую контроллеру)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...