代码之家  ›  专栏  ›  技术社区  ›  Martin AJ

如何在Laravel关系中添加Where子句?

  •  1
  • Martin AJ  · 技术社区  · 6 年前

    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class purchase_order extends Model
    {
        protected $table = "purchase_order";
        public $timestamps = false;
    
        public function commodities()
        {
            return $this->hasMany(commodities::class, 'purchase_order_id', 'id');
        }
    
    }
    

    commodities() commodities where('commodities.invoiced', 1)

    2 回复  |  直到 6 年前
        1
  •  2
  •   Joe    6 年前

    最好的方法是添加一个 invoiced() Commodities

    https://laravel.com/docs/5.6/eloquent#query-scopes

    public function scopeInvoiced($query){
        return $query->where('invoiced', 1);
    }
    

    那就叫这个 Commodities->invoiced();

        2
  •  0
  •   Oluwatobi Samuel Omisakin    6 年前

    public function commodities()
    {
        return $this->hasMany(commodities::class, 'purchase_order_id', 'id')
            ->where('commodities.invoiced', 1);
    }
    

    在构建查询时,它将 commodities.invoiced

    裁判: https://laraveldaily.com/filter-eloquent-relationships-fly-need/