gpt4 book ai didi

php - Hook 和 MY_Model

转载 作者:行者123 更新时间:2023-12-04 04:45:27 25 4
gpt4 key购买 nike

我希望我能找到可以为我回答问题的人。我是 Jamie Rumbelow 的 MY_Model,我很想知道如果我需要在钩子(Hook)内运行一个函数,我是否可以使用它的功能。

$hook['pre_controller'] = array(
'class' => 'Logins_model',
'function' => 'pre_init', // Run some sort of get function here
'filename' => 'logins_model.php',
'filepath' => 'models',
//'params' => array('beer', 'wine', 'snacks')
);

编辑2:你会说这是一个好的钩子(Hook)还是我已经完全失去了这个?
<?php

if (!defined('BASEPATH'))
exit('No direct script access allowed');

class User_hook {

private $CI;

function __construct() {
$CI =& get_instance();
}

public function validate_user() {
$this->CI->load->model('logins_model', 'login'); //Alternatively put this in autoload.php
$this->CI->load->model('users_model', 'user');

$user_id = $this->CI->session->userdata('user_id');

if (($user_id !== TRUE) && (!is_numeric($user_id)) && (strlen($user_id) < 5))
{
redirect('login');
}

$user_data = $this->CI->user->get($user_id);
$user_data->login = $this->CI->login->get_by('user_id', $user_id);

if (empty($user_data))
{
redirect('login');
}
}
}

最佳答案

是的,但不使用您建议的代码。您需要创建自己的自定义钩子(Hook)类,然后加载(或自动加载)并在那里调用您的模型。

还需要注意的是,这不适用于 pre_controller。 Hook ,因为 CodeIgniter 对象尚不可用。 Hook 必须是 post_controller_constructor或更晚。以这个钩子(Hook)类为例 hooks/some_hook.php .

class some_hook {

private $CI;

function __construct() {
$CI =& get_instance();
}

public function some_function() {
$this->CI->load->model('logins_model'); //Alternatively put this in autoload.php
$this->CI->logins_model->some_function_in_logins();
}
}

然后您将使用以下方法加载它:
$hook['post_controller_constructor'] = array(
'class' => 'some_hook',
'function' => 'some_function',
'filename' => 'some_hook.php',
'filepath' => 'hooks'
);

关于php - Hook 和 MY_Model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18260550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com