【问题标题】:how could i write this query in eloquent for laravel 8我怎么能用 eloquent 为 laravel 8 写这个查询
【发布时间】:2021-07-14 11:23:53
【问题描述】:

我在 laravel 8 上编写查询时遇到问题。

我有这个模型:

class ScrittureBilancio extends Model
{
    use HasFactory;
    protected $table = 'scritturebilancio';
    protected $fillable = ['CodiceConto','IdLibroMastro','IdRubrica','IdIniziativa',
        'Data','Importo','Segno','Descrizione','Esercizio','Competenza'];
    protected $primaryKey = 'idscritturebilancio';
    
    public function Rubrica() {
        return $this->belongsTo(Rubrica::class,'IdRubrica', 'idRubrica');
    }
    
    public function Iniziativa() {
        return $this->belongsTo(Iniziative::class,'IdIniziativa', 'idiniziativa');
    }
    
}

class Iniziative extends Model
{
    use HasFactory;
    protected $table = 'iniziative';
    protected $fillable = ['Denominazione','IdStruttura','IdAgenzia','TipoIniziativa','StatoIniziativa'];
    protected $primaryKey = 'idiniziativa';
    
    public function Agenzia() {
        return $this->belongsTo(Agenzie::class,'IdAgenzia', 'idagenzia');
    }
    
    public function Struttura() {
        return $this->belongsTo(StruttureIniziativa::class,'IdStruttura','idstrutturainiziativa');
    }
       
}

class StruttureIniziativaPianoConti extends Model
{
    use HasFactory;
    protected $table = 'struttureiniziativepianiconti';
    protected $fillable = ['CodiceBilancio','Descrizione','IdStruttura','CodiceVoceMIRWEB','IdPadre',
        'Natura','Riferimento','Gestione','ControPartita','Tipo'];
    protected $primaryKey = 'id';
    
    public function Struttura() {
        return $this->belongsTo(StruttureIniziativa::class,'IdStruttura', 'idstrutturainiziativa');
    }
}

我必须用雄辩的方式来写这个查询:

select * from sctturebilancio lexiziviative in scritturebilancio.idiniziativa = Iniziative.idiniziveIve lejiativeItiveItiveIviativePianiconti在Inizative.idstruttura = strututeIniziativePianiconti.id在where CodiceContieN中(从StruttureIniziativePianiconti中选择CodiceBilancioItivePianiconti,其中Natura ='Costi')和ScrittureBilancio.idiniziativa = 193

有人可以帮助我吗?我是 php 和 laravel 的新开发人员。谢谢大家。

【问题讨论】:

    标签: php mysql eloquent laravel-8


    【解决方案1】:

    使用这种格式的查询

    ScrittureBilancio::select('*')
                    ->leftjoin('iniziative','scritturebilancio.idiniziativa','=','iniziative.idiniziative')
                    ->leftjoin('struttureiniziativepianiconti','iniziative.idstruttura','=','struttureiniziativepianiconti.id')
                    ->whereRaw('scritturebilancio.codiceConto IN (SELECT codicebilancio FROM struttureiniziativepianiconti WHERE natura="Costi") AND scritturebilancio.idiniziativa=193')
                    ->get();
    

    【讨论】:

    • @Marino 听起来不错。如果可行,请以绿色勾号形式接受此答案,以便对其他访问者也有帮助。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2017-04-22
    • 2019-09-21
    • 1970-01-01
    • 2022-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多