首页 > 解决方案 > laravel where 条件与 % 运算符

问题描述

今天我试图在 where laravel 子句中获取模运算符,但我无法让它工作,在进行了一些谷歌研究并阅读了我发布的文档之后,这可能是一些可以帮助我获得解决方案的人

Produit::has('caracteristique.image', '=', 2)
                //->where('(caracteristique.image.caracteristique_id)', '=', 2)
                ->has('caracteristique.stock')
                ->where('market_id', Auth()->user()->market->id)
                ->where(DB::raw('count(`produits`.`caracteristiques`.`images`.`caracteristique_id`)'), '%2', [2])
                ->get();

我希望选择所有与特征表有关系的产品,对于每个特征,我必须从图像表中找到 2 个我也做这个的 iamge

->has('caracteristique.image', '=', 2)

但问题是这段代码不能保证每个特征,比如我可以得到 1 个带有 2 个特征和 3 个图像的产品,但我想有 4 个图像希望你理解我的问题,并希望你能帮助我找到解决方案。谢谢你

在这里我们有模型

产品

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use App\Models\{
    Market,
    Caracteristique,
};

class Produit extends Model
{
    protected $fillable = ['nom', 'detail', 'rabais', 'statut','demande', 'market_id'];
public function caracteristique()
{
    return $this->hasMany(Caracteristique::class);
}

public function market()
{
    return $this->belongsTo(Market::class);
}

}

性格特征

 namespace App\Models;

use App\Models\{
    Produit,
    Stock,
    Image,
};
use Illuminate\Database\Eloquent\Model;

class Caracteristique extends Model
{
    protected $fillable = [
        'produit_id', 'couleur', 'prix', 'quantite', 'size', 'disponible', 
    ];

    public function produit()
    {
        return $this->belongsTo(Produit::class);
    }

    public function stock()
    {
        return $this->hasOne(Stock::class);
    }

    public function image()
    {
        return $this->hasMany(Image::class);
    }
}

图片

namespace App\Models;

use App\Models\{
    User,
    Caracteristique,
};
use Illuminate\Database\Eloquent\Model;

class Image extends Model
{

    protected $fillable = [
        'caracteristique_id', 'user_id', 'nom'
    ];


    public function caracteristique()
    {
        return $this->belongsTo(Caracteristique::class);
    }

    public function user(){

        return $this->belongsTo(User::class);

    }

}

produit 可以有多个特征,但对于每个特征,它必须有 2 个图像我如何编写此查询以避免使用一个或没有任何图像查询特征?它只是在 %2 条件后的第一行说错误 sql。

标签: laravel

解决方案


推荐阅读