2016-07-27 18 views
1

「Macroable.php行81でBadMethodCallExceptionが発生しました: メソッドnowpublishedが存在しません。」laravel 5 BadMethodCallException

public function menue() { 
    $articles = Article::all()->nowpublished()->get(); 

    return view('pages.menues')->withArticles($articles); 
} 
:私はをPagesControllerでこれを使用しよう

public function index() { 


    $articles = Article::where('user_id', Auth::user()->id) 
         ->nowpublished() 
         ->get(); 

    $futurearticles = Article::where('user_id', Auth::user()->id) 
          ->unpublished() 
          ->get(); 

    $name = User::where('id', Auth::user()->id) 
       ->select('name') 
       ->get(); 

    $slug = str_slug($name, "-"); 

    //$articles = Article::where('user_id', Auth::user()->id)->orderBy('published_at','desc')->get(); 
    return view('backend.articles.index')->withArticles($articles)->withFuturearticles($futurearticles); 
} 

public function scopeNowPublished($query) { 
    $query->whereBetween('published_at',[Carbon::today(),Carbon::now()])->orderBy('published_at','desc'); 
} 

これは私のArticleControllerはで正常に動作します:

私は今日だけのために記事を受け取るためにスコープを持っています

しかし、それは私に上記の例外をスローします。 ここに何が問題なのですか?

+0

'条:: nowPublished()これを試してみてください - >()を取得;'そのが – Maraboc

答えて

0

私はそれは[OK]を、それが記事::すべての(と思われる

public function scopeNowPublished($query) 

または

$articles = Article::all()->published()->get(); 
+0

dumpautoload' '作曲を実行しようと動作しない場合申し訳ありません:私の間違いはscopeNowPublishedです、私はそれを上に編集しました。あなたの提案では、それはまだ動作しません –

0

されるべきだと思うが)問題が発生します。スコープを連鎖させなければならない。なぜ誰かが説明できますか?スコープ機能の

public function menue() { 
    $articles = Article::nowpublished()->get(); 

    return view('pages.menues')->withArticles($articles); 
} 
0

戻りクエリ

public function scopeNowPublished($query) { return $query->whereBetween('published_at',[Carbon::today(),Carbon::now()])->orderBy('published_at','desc'); }