我是laravel的begginer,我做了一个搜索查询,我也有搜索标签,但我不知道如何搜索它
查询看起来像这样
public function post_search()
{
$tags = Input::get('tag_id');
$search = $this->user
->with('tag')
->where('username', 'LIKE', '%'.Input::get('username').'%')
->where('first_name', 'LIKE', '%'.Input::get('first_name').'%')
->where('last_name', 'LIKE', '%'.Input::get('last_name').'%')
->where('group_id', 'LIKE', '%'.Input::get('group_id').'%')
->where('tag_id', 'LIKE', '%'.$tags.'%')
->paginate(22);
$this->layout->title = "Search results";
$this->layout->content = View::make("home.results")
->with('users', $search);
}
tag_id输入返回以下内容
array(5) {
[0]=>
string(2) "20"
[1]=>
string(1) "1"
[2]=>
string(1) "3"
[3]=>
string(1) "2"
[4]=>
string(2) "15"
}
请有人给我一个提示,告诉我如何在搜索中实现标签?
谢谢
修改
我收到标签
的错误Array to string conversion
答案 0 :(得分:4)
在您的查询中
->where('tag_id', 'LIKE', '%'.$tags.'%')
和$tags
是一个数组,但您将其与like
一起使用,因此出现Array to string conversion
错误。你应该使用
->whereIn( 'tag_id', $tags );