Laravel主动运输方式

问题描述

表格:

       Schema::create('shippings',function (Blueprint $table) {
            $table->id();
            $table->string('name',64);
            $table->integer('price');
            $table->enum('active',['yes','no'])->default('yes');
            $table->timestamps();
        });
    }

型号:

class Shipping extends Model
{
    const YES = 'yes';
    const NO = 'no';

    public function isActive()
    {
        return $this->active == self::YES;
    }
}

我想通过使用这样的模型函数显示活动的

 $shipping = Shipping::with('isActive')->get();

但是我得到了

错误 在bool上调用成员函数addEagerConstraints()

我做错什么了吗,还是不可能以这种方式做到这一点?

解决方法

您可以使用laravel scopes代替:

class Shipping extends Model
{
    const YES = 'yes';
    const NO = 'no';

    public function scopeActive($query)
    {
        return $query->where('active','=',self::YES);
    }
}

然后

$shipping = Shipping::active()->get();

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...