Mr *_*bot 2 php api search laravel laravel-5.3
我现在正在实现一个 APIfront end and mobile apps我正在研究search function用户可以在何处输入column name或任何data我应该能够以 JSON 格式提供他们请求的数据
我真的不知道如何根据他们输入的数据进行查询,所以我这样做了
在我的控制器中
public function getSearchResults(Request $request) {
$search_drivers = Driver::all();
return Response::json([
'data' => $search_drivers->all() // i know this is not cool, i need to query based on the input data
]);
}
Run Code Online (Sandbox Code Playgroud)
我的模型是
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Driver extends Model
{
use SoftDeletes;
protected $fillable = [
'agent_id',
'registration_center',
'registration_date',
'sponsor_name',
'event_name',
'registration_id',
'profile_photo',
'first_name',
'last_name',
'role',
'date_of_birth',
'marital_status',
'phone_number',
'alternate_phone_number',
];
protected $dates = ['deleted_at'];
}
Run Code Online (Sandbox Code Playgroud)
在我的路线中
Route::group(['prefix' => 'v1', 'middleware' => 'auth:api'], function() {
Route::get('user', function (Request $request) {
return $request->user();
});
Route::resource('drivers', 'DriversController');
Route::resource('search', 'DriversController@getSearchResults'); //search route
});
Run Code Online (Sandbox Code Playgroud)
参数可能是
http://localhost:8000/api/v1/search?data=name(maybe any column data from above model)
Run Code Online (Sandbox Code Playgroud)
你能告诉我或者给我一些例子如何 query and return as json
谢谢你
您可以where将需要搜索的每个字段链接为:
$data = $request->get('data');
$drivers = Driver::where('first_name', 'like', "%{$data}%"))
->orWhere('last_name', 'like', "%{$data}%"))
->get();
return Response::json([
'data' => $drivers
]);
Run Code Online (Sandbox Code Playgroud)
where如果需要,您可以添加更多子句。