首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当{relations}_count不在数据库表中时,如何对{relations}_count排序

当{relations}_count不在数据库表中时,如何对{relations}_count排序
EN

Stack Overflow用户
提问于 2020-08-11 13:39:36
回答 1查看 88关注 0票数 1

我正在执行Laravel任务,我想对一个与另一个表相关的表进行排序。我在这里阅读了文档:https://laravel.com/docs/5.4/eloquent-relationships#counting-related-models My code:

代码语言:javascript
复制
$addonCategories = AddonCategory::withCount('addons')->sortable()->orderBy('id', 'DESC')->with('addons')->paginate(20);
return view('admin.addonCategories', array(
            'addonCategories' => $addonCategories,
        ));

AddonCategory控制器:

代码语言:javascript
复制
class AddonCategory extends Model
{
    use Sortable;
    protected $casts = ['addons_count' => 'integer'];
    public $sortable = ['name', 'type', 'addons_count', 'created_at'];

    public function items()
    {
        return $this->belongsToMany(Item::class);
    }

    public function addons()
    {
        return $this->hasMany('App\Addon');
    }
}

addonCategories.blade.php:

代码语言:javascript
复制
<th>@sortablelink('addons_count', __('storeDashboard.acpTableNOA'))</th>

当我使用sortable时,会出现错误

代码语言:javascript
复制
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'addons_count' in 'order clause' 

我想是因为数据库表中没有addons_count。那么如何像这样使用{relations}_count排序呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-11 14:21:36

首先,看起来您正在使用库:https://github.com/Kyslik/column-sortable

AddonCategory中的$sortable属性将数组元素与表的列名相匹配。因此,您将收到错误:SQLSTATE[42S22]: Column not found: 1054 Unknown column 'addons_count' in 'order clause'

鉴于addons_count列在MySQL表addon_category中不存在,而是由laravel作为属性添加的,您将需要实现Aliasing,这是在library's documentation中指定的

您的最终模型将为:

代码语言:javascript
复制
class AddonCategory extends Model
{
    use Sortable;
    protected $casts = ['addons_count' => 'integer'];
    public $sortable = ['name', 'type', 'created_at'];
    public $sortableAs = ['addons_count'];

    public function items()
    {
        return $this->belongsToMany(Item::class);
    }

    public function addons()
    {
        return $this->hasMany('App\Addon');
    }
}

您实现的其余部分都很好。

Here's a link to a github issue which relates to yours.

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

https://stackoverflow.com/questions/63352123

复制
相关文章

相似问题

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