CodeIgniter - 从视图内部调用函数

Chr*_*ris 3 codeigniter

是否可以从视图中调用位于控制器中的函数?

作为一个例子,这就是我在我的控制器中所拥有的

function checkKeyExists($userid, $key){
}
Run Code Online (Sandbox Code Playgroud)

然后在我的视图中我有以下内容

if(checkKeyExists($row->id, $role->key)){
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,它表示没有定义checkKeyExists.

如果有人能告诉我如何做到这一点,那就太好了.

小智 13

视图并不意味着调用控制器操作.反转逻辑,在控制器中调用该函数并将其设置为发送到视图的变量.然后,您可以让if语句在视图模板中检查该变量.

如果这对您不起作用,也许您需要帮助:https://www.codeigniter.com/user_guide/general/helpers.html


Mar*_*sis 6

就像威多克斯说的那样,我认为助手是最好的出路.像这样的东西:

<?php // test_helper.php
if(!defined('BASEPATH')) exit('No direct script access allowed');

function checkKeyExists($userid, $key, $table)
{
    $CI =& get_instance();

    $query = $CI->db->query("SELECT $keyFROM $table WHERE id = $userid LIMIT 1");
    if($query->num_rows() > 0)
    {
        return true;
    }else
    {
        return false; 
    }
}

?>
Run Code Online (Sandbox Code Playgroud)

然后你可以自由地使用你的视图,只需加载你的各自的控制器,如:$ this-> load-> helper('test');.