Я почти прочитал всю статью в google и сообщения в stackoverflow, но не смог найти правильное решение или не получил его. В любом случае, я хочу создать функцию поиска в Laravel API, поэтому я начал с:
public function search(Request $request) {
$data = $request->get('data');
$search = Post::where('title', 'like', "%{$data}%")
->orWhere('user_id', 'like', "%{$data}%")
->get();
return response()->json([
'data' => $search
]);
}
Это нормально работает, и по приведенному ниже URL-адресу возвращаются данные:
http://127.0.0.1:8000/api/search?data=22
{
"data": [
{
"id": 10,
"title": "some",
"created_at": "2019-11-02 07:56:40",
"updated_at": "2019-11-02 07:56:40",
"user_id": "22"
}
]
}
Но я хочу получить данные для каждого параметра, как этот, а также удалить параметры из URL, вместо этого отправив в виде данных формы:
http://127.0.0.1:8000/api/search
данные формы:
{
user_id: 22
}
Итак, что я пробовал до сих пор:
public function search(Request $request) {
$user_id = request('user_id'); // this return 22
$title = request('title');
$search = Post::where('title', 'like', "%{$title}%")
->orWhere('user_id', 'like', "%{$user_id}%")
->get();
return response()->json([
'data' => $search
]);
}
Но он возвращает все данные, а не только данные с user_id-> 22, Есть идеи?
Результат:
{
"data": [
{
"id": 8,
"title": "some",
"created_at": "2019-11-02 07:55:57",
"updated_at": "2019-11-02 07:55:57",
"user_id": "12"
},
{
"id": 10,
"title": "some",
"created_at": "2019-11-02 07:56:40",
"updated_at": "2019-11-02 07:56:40",
"user_id": "22"
},
{
"id": 11,
"title": "some",
"created_at": "2019-11-02 07:56:45",
"updated_at": "2019-11-02 07:56:45",
"user_id": "4"
},
{
"id": 12,
"title": "some",
"created_at": "2019-11-02 07:56:47",
"updated_at": "2019-11-02 07:56:47",
"user_id": "42"
}
]
}
Я хочу, чтобы он просто возвратил id 10, потому что это только данные с user_id 22.