如何在Laravel 5.4中创建自己的范围

时间:2017-09-14 05:29:06

标签: php laravel-5.4

我对Laravel 5.4中的范围有一些不确定的问题

我尝试使用简单的语法编写范围。

 class Addresses extends Model
{
    protected $table = "Addresses";
    protected $primaryKey = 'adress';
    public $timestamps = false;

    public function scopeSearchAdress($query, $searchTerm)
    {
        return $query->where('adress', 'LIKE', '%'.$searchTerm.'%s');
    }

    public function company()
    {
        return $this->hasOne(Company::class, 'adress');
    }

    public function contactPerson()
    {
        return $this->hasMany(ContactPerson::class, 'adress');
    }

}

当我启动php artisan tinker并编写此命令时: App\Address::searchAdress('1330')->get()我明白了:

Illuminate\Database\Eloquent\Collection {#695
     all: [],
   }

我不明白为什么我得到一个空数组。如果我在MSSQL中进行查询,我会使用此地址获取地址= 1330

1 个答案:

答案 0 :(得分:1)

问题是我猜是字符串和int值

你正在传递一个字符串,使用这个

App\Address::searchAdress(1330)->get();

更改范围查询

return $query->where('adress', '=', $searchTerm);