为什么我使用范围获得空集合结果?这是我目前的控制人员:
class PunxController extends Controller {
public function index()
{
$scholars = Scholar::age()->get();
return $scholars;
}
}
以及我的模型Scholar
:
use Illuminate\Database\Eloquent\Model;
class Scholar extends Model {
protected $primaryKey = 'scholar_id';
protected $fillable = ['ngo_id','scholar_lname','scholar_fname','scholar_image','scholar_nickname','scholar_cityAddress','scholar_permaAddress','scholar_birthday','scholar_placebirth','scholar_age','scholar_gender','scholar_email','scholar_contact'];
public static function scopeAge($query)
{
return $query->where('scholar_age', '>=', 5);
}
}
结果是:
但是当我尝试 PHPMYADMIN :
时UPDATE1
DB::getQueryLog()
:
答案 0 :(得分:2)
从您的方法中删除static
关键字。范围不应该是静态的。
public function scopeAge($query)
{
return $query->where('scholar_age', '>=', 5);
}
我猜你想提供5
作为范围的参数,而不是硬编码。在这种情况下,你可以这样做:
public function scopeAge($query, $age)
{
return $query->where('scholar_age', '>=', $age);
}
并称之为
Scholar::age(5)->get();
答案 1 :(得分:0)
试试这个:
public function scopeAge($query)
{
return $query->where('scholar_age', '>=', 5);
}