我无法构建简单的Laravel查询。我有translation
与类别(translation.category_id
是category.id
的外键)。此外,类别还具有is_technical
属性。
我需要的是:-获取翻译类别中的所有翻译。Is_technical = 1.
当前我有这个查询:
$match = ['lang1_code' => $langfrom, 'lang2_code' => $langto];
$translation = Translation::where($match)->orderByRaw("RAND()")->take(4)->get();
但是这个查询不加入类别(我在我的数据库和我的模型中有关系)。因此,如何加入类别和设置,其中is_Technical = 1?
我相信这是一个基本的问题,但是我是Laravel的新手,我在文档中找不到答案。
你需要whereHas。请参阅Laravel文档了解更多信息http://laravel.com/docs/5.1/eloquent-relationships
这是一个例子,更正你的型号名称。
//Translation.php
public function category() {
return $this->belongsTo('Category', 'category_id');
}
// query
$translation = Translation::whereHas('category', function($q) {
$q->where('is_technical', '=', 1);
})->where($match)->orderByRaw("RAND()")->take(4)->get();