如何在laravel模型中获取表属性

时间:2018-09-11 10:37:55

标签: php laravel model

我只想让wef等于当前表wef的类型。如何实现这一点,我无法使用$ this-> attributes ['wef']获取wef属性。预先感谢。

class Gst extends Model
    {
        //
        use Traits\UserAutoUpdate;
        protected $connection = 'mysql';
        protected $table = "gst";
        protected $fillable = ['name','wef'];

        public function types(){
           return $this->hasMany(GstType::class,'gst_id','id')->where('wef', $this->attributes['wef']);
        }   


    }

错误: “未定义索引:wef”

1 个答案:

答案 0 :(得分:2)

您需要一个函数来定义GstType和Gst之间的关系:

public function gstTypes()
{
     return $builder->hasMany(GstType::class,'gst_id','id');
}

然后创建一个范围函数:

public function scopeTypes($builder){
    return $builder->whereHas('gstTypes', function ($query) {
       $query->where('wef', $this->getAttribute('wef'));
   });
}   

并像这样使用它:

 $types = GstType::types();