【发布时间】:2019-01-19 20:50:52
【问题描述】:
我有一个包含关系的产品表:specValues
在我的产品模型中:
public function specValues(){
return $this->morphMany('App\Models\SpecValue', 'specvalued');
}
在我的specValues中有:
class SpecValue extends Model
{
use Cachable;
protected $table = 'specvalued';
protected $fillable = ['field_id', 'value', 'value_desc', 'link',
'specvalued_id', 'specvalued_type'];
public $timestamps = false;
public function specvalued()
{
return $this->morphTo();
}
public function field()
{
return $this->belongsTo('App\Models\SpecField','field_id');
}
}
现在,我想为产品列表制作一个过滤器和多重过滤器:
使用specvalued()(来自specvalued 表)我得到了名字(或id)
并使用 specvalued 表中的“值”字段。
带有产品的specValues 看起来像这样:(我有很多类似的,但specvalued_id 和value 不同,我想用它制作一个过滤器。
#attributes: array:8 [▼
"id" => 354327
"field_id" => 4
"specvalued_id" => 27535 //(name = year)
"specvalued_type" => "Model\Product"
"value" => "2017"
"value_desc" => null
"link" => null
"created_at" => "2017-09-03 10:12:30"
]
我尝试做类似的事情,以便在过滤后从specValues 表中获取具有spespic 值的产品:
$products = $category->products()->with('specValues')->
where ????
orderBy('position')->paginate(20);
如何使用我的信息选择 where 选项?
【问题讨论】:
标签: laravel eloquent laravel-query-builder laravel-filters