Restful API中的Laravel 5.8搜索功能

时间:2019-04-28 09:54:42

标签: php laravel api

我正在为 前端和移动应用 实现API,现在我正在使用搜索功能,用户可以在其中输入列电话号码或我应该输入的任何数据能够以JSON格式提供他们请求的数据

我真的不知道如何根据他们输入的数据进行查询,所以我这样做了

我的控制器

public function searchMember(Request $request)
{
    $data = $request->get('data');
    $member_info = Member::where('phone_number', 'like', "%{$data}%")
             ->get();

    return Response()->json([
        'status' => 'success',
        'data' => $member_info
    ], 200);
}

我的模型

class Member extends Model
{
    protected $fillable = ['name','member_id','service_id','batch_id','phone_number','office_name','designation','email','image','remember_token'];
}

还有我的路线

Route::get('search?data=phone_number', 'MemberController@searchMember');

当我运行API资源时,其返回404 |未找到。 我找不到解决方案如何解决这个问题。 在邮递员中,我运行如下所示的API:

http://localhost:8000/api/v1/search?data=0179826****

请帮助我如何解决此问题。在此先感谢!

1 个答案:

答案 0 :(得分:0)

我知道您已经解决了您的问题,但是以防万一有人想知道答案。在rout中的url中传递数据的正确方法是:

Route::get('search/{phone_number}', 'MemberController@searchMember');

,然后在您的控制器中将其显示为:

public function searchMember(Request $request, $phone_number)

然后您的网址如下所示:

http://localhost:8000/api/v1/search/0179826****

除此之外,如果您要通过请求发送变量,则无需在溃败中对其进行澄清。因此路线如下:

Route::get('search', 'MemberController@searchMember');

控制器和网址将与您发布的相同。