我尝试运行此代码
Item::with('product_save')->whereHas('product_save', function($q){
$q->where('user_id', 4);
});
使用
paginate(20);
项目模型:
class Item extends Model
{
protected $table = 'products';
public function product_save()
{
return $this->hasOne('App\Product_save','product_id')->where('user_id', Auth::user()->id);
}
}
但是太慢了,我的数据库有超过100万条记录。
谢谢
答案 0 :(得分:0)
在您的Tablke上创建索引,如下所示:
CREATE INDEX index_name
ON table_name (column1, column2, ...);
答案 1 :(得分:0)
在ProductSave模型中添加以下关系:
use Illuminate\Database\Eloquent\Model;
class ProductSave extends Model
{
protected $table='product_saves';
public $primaryKey='id';
public function product(){
return $this->belongsTo('App\Product','product_id')->where('active',1);
}
}
现在在您的控制器中尝试以下操作:
$products=ProductSave::where('user_id',4)->with('product')->paginate(20);