【发布时间】:2017-09-15 14:05:53
【问题描述】:
我想为我的表格创建一个简单的搜索功能。此表从两个 mssql [Addresses] 和 [Companies] 表中获取数据。这些表具有一对一的关系。
class Addresses extends Model
{
protected $table = "Addresses";
protected $primaryKey = 'adress';
public $timestamps = false;
public function scopeSearchAddress($query, $searchTerm)
{
return $query->where('city', 'LIKE', '%'.$searchTerm.'%')
->orWhere('name', 'LIKE', '%'.$searchTerm.'%')
->orWhere('street', 'LIKE', '%'.$searchTerm.'%');
}
public function company()
{
return $this->hasOne(Company::class, 'adress');
}
这种关系是一个地址一个公司。 第一个表地址有 name、street、city 列,第二个表有 compName、compType。
class Company extends Model
{
protected $table = "Company";
protected $primaryKey = 'Adresse';
public $timestamps = false;
public function addresses()
{
return $this->belongsTo(Addresses::class, 'adress');
}
}
这是两个模型。控制器如下所示:
class AddressesController extends Controller
{
public function index(Request $request)
{
$searchTerm = $request->input('searchTerm');
$addresses = Addresses::whereHas('compan', function($query) {
$query->where('compType','D');
})->orderBy('Name')
->searchAddress($searchTerm)
->paginate(60);
return view('asdress.index', compact('addresses', 'searchTerm'));
}
}
我可以在第一个表列(城市、名称、街道)之后进行搜索。但是我如何在第二个表格列之后搜索 compName。
【问题讨论】:
标签: php laravel-5.4