【问题标题】:Codeigniter library class public variables not workingCodeigniter 库类公共变量不起作用
【发布时间】:2012-05-23 14:51:33
【问题描述】:

这是我的代码的 sn-p:

<?php

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

class sample{

function __construct() {
    $this->ci = & get_instance();
    }

public $name;
public $style;


function set_data($data)
{
    /* List of parameters that you can set */

    $this->name = (isset($data['name']) ? $data['name']: ''); // Set select name
    $this->style = (isset($data['style']) ? $data['style']: ''); // Set select style

}

function select_both_dropdown()
{
    $select = '<select name="'.$this->name.'" class="chzn-select" style="'.$this->style.'">';
    $select .= '<option value=""></option>';
    $select .= '</select>';
return $select;
}

控制器:

$data['select'] = $this->sample->select_both_dropdown(array(
        'name' => 'eventselect',
        'style' => 'min-width: 247px;'
    ));

它是如何加载到控制器中的: 函数_构造(){ 父::_construct(); $this->load->library('tank_auth'); $this->load->library('sample'); }

当屏幕上的选择加载时,没有任何东西填写。没有名字,没有风格等..我做错了什么?

【问题讨论】:

    标签: php class codeigniter variables


    【解决方案1】:

    你需要正确引用它们;

    在图书馆里;

    // as you have done
    $this->select = 'foo';
    

    在您的控制器中,它将类似于 $this-&gt;sample-&gt;name$this-&gt;sample-&gt;style

    但 $select 不是属性或被返回,因此将不可用。

    更新 - 基于 cmets 控制器;

    $this->sample->set_data(array(
            'name' => 'eventselect',
            'style' => 'min-width: 247px;'
        ));
    $data['select'] = $this->sample->select_both_dropdown();
    

    另一个更新

    function select_both_dropdown($data)
    {
        $this->set_data($data);
        $select = '<select name="'.$this->name.'" class="chzn-select" style="'.$this->style.'">';
        $select .= '<option value=""></option>';
        $select .= '</select>';
    return $select;
    }
    

    然后我会将 set_data() 更改为私有而不是公共。

    【讨论】:

    • 这是一个自定义库,选择菜单是通过控制器传递的参数在库中构建的。
    • 然后按照鲁尼说的修改你的库。
    • $select 在函数外返回
    • 你是如何调用控制器中的库的?
    • 你从不调用set_data,所以属性会是空的,看答案更新
    猜你喜欢
    • 2013-12-15
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 2010-12-31
    • 2014-10-09
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多