首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PhpActiveRecord中将变量传递给has_one关系

在PhpActiveRecord中将变量传递给has_one关系
EN

Stack Overflow用户
提问于 2013-03-27 07:36:07
回答 1查看 283关注 0票数 1

我正在一个项目中使用phpactiverecord (http://www.phpactiverecord.org/)。

我定义了下面的关系。有没有办法传递一个变量给它,这样我就可以动态地改变language_id了?

代码语言:javascript
复制
static $has_one = array(
  array(
    'language', 
    'class_name' => 'Pages_lang', 
    'conditions' => array('language_id=1')
  )
);

我看了一下文档,看起来你可以这样做:

代码语言:javascript
复制
static $has_one = array(
  array('language', 
    'class_name' => 
    'Pages_lang', 
    'conditions' => array('language_id=?','1'))
);

但是传入一个变量:

代码语言:javascript
复制
static $has_one = array(
  array('language', 
    'class_name' => 
    'Pages_lang', 
    'conditions' => array('language_id=?',$language_id))
);

抛出错误。

我真的不确定我错在哪里。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-27 07:59:59

static变量只在对象的上下文中有意义。它们在该类型的对象被实际创建(实例化)之前就存在了。

我不完全确定您在这里想要实现什么,但您很可能希望在程序的控制流中的某个点更改变量。为此,您必须在设置该静态变量的值的类中创建并调用一个方法(建议,参见下面的示例代码),或者从您的主代码显式设置它(不建议,还要求您的变量为public)

代码语言:javascript
复制
class Foo
{
    static $has_one = 'initial value';

    public static function setHasOne($value) {
        self::$has_one=$value;
    }
}

// main code:
Foo::setHasOne('new value');

为了简单起见,我在这里使用了一个字符串变量,但它对数组的作用是一样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15649396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档