如何在 Laravel 5.4 中创建自己的范围
How to create own scope in Laravel 5.4
我对 Laravel 5.4
中的范围有一些难以理解的问题
我尝试使用简单的 where like 语法创建一个范围。
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 中进行查询,我得到的地址为 address=1330
我猜问题出在字符串和整数值上
你正在传递一个字符串,使用这个
App\Address::searchAdress(1330)->get();
更改范围查询
return $query->where('adress', '=', $searchTerm);
我对 Laravel 5.4
中的范围有一些难以理解的问题我尝试使用简单的 where like 语法创建一个范围。
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 中进行查询,我得到的地址为 address=1330
我猜问题出在字符串和整数值上
你正在传递一个字符串,使用这个
App\Address::searchAdress(1330)->get();
更改范围查询
return $query->where('adress', '=', $searchTerm);