首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5.4 -使用列-可排序

Laravel 5.4 -使用列-可排序
EN

Stack Overflow用户
提问于 2017-07-21 17:49:23
回答 1查看 2.7K关注 0票数 0

我正在尝试对我的laravel 5.4 (https://github.com/Kyslik/column-sortable)使用列排序,

我的模型:

代码语言:javascript
复制
    class InfoBird extends Model
{
    public $timestamps = false;
    protected $primaryKey = "id_oiseau";
    protected $table = "oiseau";

    use Sortable;

    public $sortable = [ 
        'nom_codifie',
        'nom_commun',
        'etat_actuel',
        'pays',
        'date_reception',
        'date_renvoi',
        'immatriculation',
        'nom_local'
    ];

    public function getBirds() {
        $birds = DB::table('oiseau as oi')
            ->leftJoin('local_lpo', 'oi.id_local_lpo', 'local_lpo.id_local_lpo');

        return $birds;
    }
 }

我的控制器:

代码语言:javascript
复制
public function birds() {

        $infoBirds = new InfoBird;
        $birds = $infoBirds->getBirds();

        $birds = $birds->sortable()->paginate(15);

        //$birds = InfoBird::sortable()->paginate(15);

        return view('pages.birds', compact('birds'));
    }

在我添加模型之前,它是有效的(只有注释中的句子)。但现在我有了这个错误:

Call to undefined method Illuminate\Database\Query\Builder::sortable()

我已经没有办法解决这个问题了,非常感谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-21 18:20:41

getbirds()返回一个QueryBuilder,因此您尝试访问的是QueryBuildersortable方法(不存在),而不是模型Infobird的sortable方法(确实存在)。

试试这个:

代码语言:javascript
复制
    $info = Infobird::sortable()->leftjoin('local_lpo', 'oi.id_local_lpo', 'local_lpo.id_local_lpo')->paginate(15);
    return view('pages.birds', compact('birds'));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45234486

复制
相关文章

相似问题

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