【问题标题】:String concatenation in ActiveRecord in Yii Framework?Yii 框架中 ActiveRecord 中的字符串连接?
【发布时间】:2011-08-27 04:19:19
【问题描述】:

是否可以使用 Yii 的 ActiveRecord 方法和模式来 CONCAT 两个表列的值?

如果是,如何?

我目前正在使用这个:

return $this->findByAttributes(array('alias' => $alias));

但在此我需要返回连接的字符串/值。

请帮忙。

【问题讨论】:

    标签: php frameworks concatenation yii concat


    【解决方案1】:

    是的,您可以通过在您的 activerecord 定义中使用 sql concat 函数来做到这一点
    ...查找()
    ->select(['alias'=>'CONCAT(....)'])
    ->所有();

    这将生成一个名为 alias 的列,其中包含 concat 中使用的列中的值
    希望仍然有帮助

    【讨论】:

      【解决方案2】:

      向模型添加方法,如下所示:

      public function getEmail()
      {
        return $this->username.'@'.$this->domain;
      }
      

      然后在视图中,您可以只使用“email”属性(不是 getEmail)就可以了。

      【讨论】:

      • 我在想是否有用于连接的参数或其他东西,但没关系。 :) 这也会有所帮助 ;)
      【解决方案3】:

      如果您正在寻找类似的东西:

      select username||'@'||domain from user_mail_table;
      

      接收连接的值 - 所以我不认为这是可能的。 这不是 ActiveRecord 的想法。

      如果你喜欢像上面的例子那样连接值,你应该使用 DAO http://www.yiiframework.com/doc/guide/1.1/en/database.dao ...或者如果你需要 ActiveRecord,你应该在你的应用程序中连接值

      $mailaddress=$model->username.'@'.$model->domain;
      

      【讨论】:

      • 谢谢!你让我明白了一些我不太明白的事情!再次感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多