获取用户名时显示错误

show error while fetch username

显示错误:App\Http\Controllers\AdminLoginController::name()

缺少参数 1
 public function name($username) {
            $user = AdminLogin::find($username);
            return response()->json($user);
        }

AdminLoginController:它是一个 adminlogin 控制器代码

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

});

错误:

(1/1) 错误异常 App\Http\Controllers\AdminLoginController::name()

缺少参数 1

您可能正在使用 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');

$app->get('user/{username}', 'AdminLoginController@name');

如果您不想更改路线,请将您的控制器功能签名更改为以下内容(如其他答案所示),并确保在调用时将 'username' 作为请求参数传递url.

public function name(\Illuminate\Http\Request $request) {
    $user = AdminLogin::where('username',$request->username)->first();
    return response()->json(['user' => $user]);
}