Laravel 获取用户名时显示错误
显示错误:缺少App\Http\Controllers\AdminLoginController::name()的参数1 AdminLoginController:它是一个adminlogin控制器代码Laravel 获取用户名时显示错误,laravel,lumen,Laravel,Lumen,显示错误:缺少App\Http\Controllers\AdminLoginController::name()的参数1 AdminLoginController:它是一个adminlogin控制器代码 class AdminLoginController extends Controller{ public function show(){ $res ="Hello world!"; return response()->json($res);
class AdminLoginController extends Controller{
public function show(){
$res ="Hello world!";
return response()->json($res);
}
public function log() {
$users = AdminLogin::all();
return response()->json($users);
}
public function name($username) {
$user = AdminLogin::where('username',$username)->first();
return response()->json($user);
}
RouteLoginController:它是一个adminlogin控制器代码:
<?php
$app->get('/', function () use ($app) {
return $app->version();
});
$app->group(['prefix' => 'api/v1'], function ($app)
{
$app->get('adminlogin', 'AdminLoginController@show'); //get single route
$app->get('user', 'AdminLoginController@log'); //get single route
$app->get('username', 'AdminLoginController@name'); //get single route
$app->post('adminlogin', 'AdminLoginController@login'); //get single route
});
您可能正在使用ajax请求调用此函数,并将名称放入查询字符串中。在这种情况下,name
参数将不会作为函数的属性发送,而是作为请求对象的一部分
您可以这样解决此问题:
public function name(\Illuminate\Http\Request $request) {
$user = AdminLogin::find($request->username);
return response()->json($user);
}
你应该试试这个:
public function name($username) {
$user = AdminLogin::where('username',$username)->first();
return response()->json(['user' => $user]);
}
或
public function name(\Illuminate\Http\Request $request) {
$user = AdminLogin::where('username',$request->username)->first();
return response()->json(['user' => $user]);
}
控制器方法采用用户名参数,但路由绑定未传递用户名参数。改变路线
$app->get('username', 'AdminLoginController@name');
到
如果不想更改路由,请将控制器函数签名更改为以下内容(如其他答案所示),并确保在调用url时将“用户名”作为请求参数传递
public function name(\Illuminate\Http\Request $request) {
$user = AdminLogin::where('username',$request->username)->first();
return response()->json(['user' => $user]);
}
我认为您在没有参数的情况下调用name方法您的name
method调用缺少参数。您必须将参数传递给方法调用。show your name方法调用part@krunalPlease show来完成代码,包括路由代码和控制器code@Krunal请显示您的路由和控制器代码。@krunal使用公共函数名(\illumb\Http\Request$Request){$user=AdminLogin::where('username',$Request->username)->first();return response()->json($user);}哪个答案???@krunal使用return response()->json($user);返回response()->json(['user'=>$user]);但是我希望直接使用username,而不在parameter中传递username。您希望您的url看起来如何?如果您希望在url example.com/api/v1/user/Krunal中传递username,请使用我在回答中提到的路由更改
$app->get('user/{username}', 'AdminLoginController@name');
public function name(\Illuminate\Http\Request $request) {
$user = AdminLogin::where('username',$request->username)->first();
return response()->json(['user' => $user]);
}