我需要你的帮助。我正在尝试为特定雄辩模型的每个查询添加一列。
基本上我想补充一下:
COALESCE(name, network_name) AS name
保留以前选择的字段非常重要,所以我在我的模型中尝试了这个:
public function newQuery()
{
$query = parent::newQuery()->addSelect('name'); // it's name only for testing purposes
return $query;
}
但这不会添加列。它取代了它。所以不要得到类似的东西:
从
name
programs
programs
选择*,id
。name
=?限制1
我明白了:
从
programs
选择programs
id
。{{1}} =?限制1
我做错了什么?我没有在网上找到任何东西,所以我真的希望你能帮助我!
答案 0 :(得分:4)
正如prady00所建议的那样,你必须在你的Eloquent模型中实现一个函数:
public static function getMore()
{
return self::select('*',DB:Raw('COALESCE(name, network_name) AS coalesce_name'))->get();
}
或强>
实施一个访问者:
protected $appends = array('coalescename');
public function getCoalescenameAttribute()
{
return ($this->name !== '' ? $this->name : $this->network_name);
}
我将优先使用访问者实现。