您好,当我尝试获取slug = $slug
处的所有行时。
我将详细解释:
我有两个表,card和card_categories。
cards has category_id.
card_categories has slug.
我需要的是一个查询,该查询返回所有包含弹头的卡。
例如,我做到了:
$cards = Card::leftJoin('card_categories', 'cards.id', '=', 'card_categories.id')
->select('cards.*', 'card_categories.*')
->where('card_categories.slug', $slug)
->paginate(5);
但是发生的是,每个类别仅返回1行。
我不知道怎么了。
非常感谢。
答案 0 :(得分:1)
我想我理解您的意思,根据您的解释,我可以想象您的卡型号如下。
class Card extends Model {
protected $table = 'cards';
public function category()
{
return $this->belongsTo(Category::class)
}
}
在这种情况下,您应该可以执行以下操作:
$cards = Card::whereHas('category', function ($query) use ($slug) {
$query->where('slug', $slug);
})->paginate(5);
这将选择所有具有给定子弹类别ID的卡。