Laravel 5.1方法' orderBy'未找到

时间:2015-09-09 18:16:00

标签: laravel laravel-5 packages

在Laravel 5.1中订购时出现问题。我是Laravel的新手,我的PHP技能并不好。

当我使用查询构建器进行排序时,它可以运行

$posts = DB::table('posts')
->where('post_status', 'draft')
->where('post_type', 'post')
->orderBy('post_date', 'asc')
->get();

当我尝试使用Eloquent时,它不会像

那样

$posts = Post::query()
->where('post_status', 'draft')
->where('post_type', 'post')
->orderBy('post_date', 'asc')
->get();

任何想法我做错了什么?

编辑:我发现了问题。我正在使用jgrossi / corcel,它已经在它的Builder中订购了。所以我无法从控制器那里做到这一点。

4 个答案:

答案 0 :(得分:1)

Corcel创作者: - )

将Corcel与Laravel 5+一起使用时,您必须包含Corcel\Post这样的名称空间来引用Post类。如果要设置自己的连接名称:

class Post extends Corcel\Post {
    protected $connection = 'connection-name';
}

是的! Post构建器已经对帖子进行了排序: - )

任何问题只是问!最诚挚的问候和感谢使用Corcel。

答案 1 :(得分:0)

删除query()表达式:

 $posts = Post::where('post_status', 'draft')
 ->where('post_type', 'post')
 ->orderBy('post_date', 'asc')
 ->get();

希望这有帮助。

答案 2 :(得分:0)

您是否为模型添加了名称空间?上一个答案应该可以正常使用

答案 3 :(得分:-2)

你添加

use App\Post;

粘贴异常也许是个好主意 .. 我对Laravel知道的一件事......如果它在修补工作并且不能正常工作,那么错误就在控制器或视图中...所以检查修补程序