public function index(Request $request)
{
// input 能获取到get和post方法的传参
$username = $request->input('username');
$email = $request->input('email');
// 当$name存在时; 使用$query查询构造器查询; use使用上面的变量穿入闭包函数中
$user = User::when($name, function($query) use ($name) {
$query->where("name", "like", "%$name%")
})
->when($email, function($query) use ($email) {
$query->where("email", "like", "%$email%")
})
->paginate(1);
return response()->json();
}
备注:
要在 App\Http\ Kernel 中修改一下
在api中添加 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'binddings' => \Illuminate\Routing\Middleware\SubstituteBindings::class
];
2. 创建新的控制器
Route::group(['prefix' => 'admin'], function () {
Route::group(['middleware' => ['auth:api', 'bindings']], function () {
Route::post('user/lock', 'Admin\UserController@lock')->name('lock');
});
});