[解決済み] Laravel. リレーションを持つモデルでscope()を使用する
2022-08-09 23:36:29
質問
2つの関連するモデルを持っています。
Category
と
Post
.
は
Post
モデルには
published
のスコープを持ちます (メソッド
scopePublished()
).
そのスコープを持つすべてのカテゴリーを取得しようとすると
$categories = Category::with('posts')->published()->get();
エラーが出ます。
未定義のメソッドの呼び出し
published()
カテゴリ
class Category extends \Eloquent
{
public function posts()
{
return $this->HasMany('Post');
}
}
投稿してください。
class Post extends \Eloquent
{
public function category()
{
return $this->belongsTo('Category');
}
public function scopePublished($query)
{
return $query->where('published', 1);
}
}
どのように解決するのですか?
インラインで行うことができます。
$categories = Category::with(['posts' => function ($q) {
$q->published();
}])->get();
リレーションを定義することもできます。
public function postsPublished()
{
return $this->hasMany('Post')->published();
// or this way:
// return $this->posts()->published();
}
として、その後に
//all posts
$category->posts;
// published only
$category->postsPublished;
// eager loading
$categories->with('postsPublished')->get();
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン