我有一个中等复杂的搜索表单:
我的需求是能够接受这些字段的任意组合并返回相应的Posting对象列表。如果没有退出Eloquent并有条件地编写SQL,我应该如何有条不紊地构建选择 。
if( !empty($library_type_id)) // query gets a library_type_id where clause added
if( !empty($province_id)) // query gets a province_id where clause added
etc.
表格布局比我早期的版本简化了:
Posting->profile->library_type_id
Posting->profile->org_name
Posting->profile->province_id
过去一周我收到了一些建议但没有成功的建议。目前我有一个SearchServiceProvider,它包含以下几行:
<?php namespace BCLA\Search;
use Posting;
use Profile;
use Input;
use DB;
class Search {
public function posts()
{
$type_id = Input::get('type_id');
$org_name = Input::get('org_name');
$province_id = Input::get('province_id');
// $city = Input::get('city');
// $keywords = Input::get('keywords');
$profiles = DB::table('profiles')
->select(DB::raw('id'))
->where('library_type_id','=',$type_id)
->where('org_name','LIKE',"%$org_name%")
->where('province_id','=',$province_id)
->get();
dd($profiles);
$posts;
return $posts;
}
}
在dd($profiles);
我总是得到一个空对象,即使所有where子句都解析为有效值。我在数据库中只有少数记录,所以我确信我的搜索输入是有效的。
关于如何继续欣赏的任何想法。 - Erik