繁体   English   中英

Laravel REST API句柄查询

[英]Laravel REST API Handle Queries

我正在使用Laravel 5.6创建REST API(我必须说我是新手,因为我可能使用了错误的术语。)

我有这样的方法,用这种方法我可以得到各方:

http://127.0.0.1:8000/api/parties

但我想得到这样的特定查询:

http://127.0.0.1:8000/api/parties?party_category=club

我该如何处理查询?

class PartiesController extends Controller
{
    public function index() {
      $parties = Parties::all();
       return Fractal::includes('places')->collection($parties,new PartyTransformer);
    }

    public function show(Parties $parties) {
      return Fractal::includes('places')->item($parties,new PartyTransformer);
    }

}

我的路线:

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Route::post('/register',['as' => 'register', 'uses' => 'RegisterController@index']); 

Route::group(['namespace' => 'Parties', 'prefix' => '/parties', 'middleware' => ['auth:api']], function(){
    Route::get('/',['as' => 'parties', 'uses' => 'PartiesController@index']); 
    Route::put('/',['as' => 'parties.store', 'uses' => 'PartiesController@store']); 
    Route::get('/{parties}',['as' => 'parties.show', 'uses' => 'PartiesController@show']);
    Route::get('/{user}',['as' => 'user.show', 'uses' => 'PlacesController@show']); 
    Route::post('/{parties}',['as' => 'parties.update', 'uses' => 'PartiesController@update']); 
    Route::delete('/{parties}',['as' => 'parties.destroy', 'uses' => 'PartiesController@destroy']); 
});

您可以检查party_category存在于url

public function index(\Illuminate\Http\Request $request) {
   if($request->has('party_category')){
      $parties = Parties::where('party_category', $request->party_category)->get();//your new query here
   }
   else{
      $parties = Parties::all();
   }
   return Fractal::includes('places')->collection($parties,new PartyTransformer);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM