Activerecord CONCAT_WS不处理select语句
我想把“firstname”和“lastname”连接起来,就像这个“firstname lastname” 在执行搜索查询时 这是我的密码:Activerecord CONCAT_WS不处理select语句,activerecord,yii2,Activerecord,Yii2,我想把“firstname”和“lastname”连接起来,就像这个“firstname lastname” 在执行搜索查询时 这是我的密码: $query = Contact::find() ->select([ "CONCAT_WS(' ', firstname, lastname) AS name" ]) ->where('(firstname like :fname) OR (lastname like :lname) OR (emai
$query = Contact::find()
->select([
"CONCAT_WS(' ', firstname, lastname) AS name"
])
->where('(firstname like :fname) OR (lastname like :lname) OR (email = :email)', [
':fname' => $searchkey,
':lname' => $searchkey,
':email' => $searchkey,
])->all();
但结果是空的,如下所示:
Array
(
[0] => common\models\contact\Contact Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
)
)
)
我希望我能有这样的东西
[name] => "firstname lastname"
输出,但没有运气。需要帮助,谢谢。您应该在Contcat模型中添加一个public var$name,并在规则中添加属性为safe,以便使用别名接收计算值
class Contact extends \yii\db\ActiveRecord
{
public $name;
....
}
我试过你说的话,但还是不走运。实际上,我有两种型号
Contact
和ContactQuery
ContactQuery
是我放置建议代码的地方,因为这是我的搜索功能所在。很抱歉,它确实起作用了[name]=>testfirstname lastname
这是输出,[\uAttributes:yii\db\BaseActiveRecord:private]=>Array()
我怎样才能把它放在_attributes中?还是不可能?我不明白你最后的评论。。请更好地解释您的需求当前输出是这样的[name]=>testfirstname lastname
[\u属性:yii\db\BaseActiveRecord:private]=>Array()
我想要的是这样的[\u属性:yii\db\BaseActiveRecord:private]=>Array(
[name]=>testfirstname lastname)
如果可能的话。您使用的是一个concat_ws,结果不是一个数组而是一个字符串。。