Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何在保存到sqlite数据库之前匹配Laravel match中的输入值_Database_Laravel_Try Catch_Response - Fatal编程技术网

Database 如何在保存到sqlite数据库之前匹配Laravel match中的输入值

Database 如何在保存到sqlite数据库之前匹配Laravel match中的输入值,database,laravel,try-catch,response,Database,Laravel,Try Catch,Response,我试图使$input data的值在保存输入和响应“its a match be give”之前首先与数据库中用户表中的Pull数组值之一匹配。我试图把这些检查放在我正在制作的API上。我对laravel API还不熟悉,我会感谢您的帮助。多谢各位 public function create(Request $request) { // $this->validate($request, [ 'inputed_number'

我试图使$input data的值在保存输入和响应“its a match be give”之前首先与数据库中用户表中的Pull数组值之一匹配。我试图把这些检查放在我正在制作的API上。我对laravel API还不熟悉,我会感谢您的帮助。多谢各位

public function create(Request $request)
    {
        //
        $this->validate($request, [
            'inputed_number' => 'required|unique:users',
            'user_id' => 'required'
        ]);

        try {
            Auth::user();
            $phonenumber = new PhoneNumber();
            $phonenumber->inputed_number = $request->inputed_number;
            $phonenumber->user_id = $request->user_id;
            
            if($this->user->phonenumber()->save($phoneuumber)){
        $user = User::all();
        $input = $request->only('inputed_number');
        $user_number = $user->pluck('phone');
        foreach ($input as $phone) {
             if ($phone !== $user_number) {
                return response()->json([
                    'success' => false,
                    'message' => 'Invalid number',
                    'data' => $phone,
                ], Response::HTTP_UNAUTHORIZED);
            }

            return response()->json([
                    'success' => true,
                    'message' => 'Its a match!!',
                    'data' => $phone,
            ]);
        }
    }
        } catch (\Exception $e) {
            return response()->json([
                'success' => false,
                'message' => 'You have already inputted this number.',
            ], Response::HTTP_UNAUTHORIZED);
        }

    }

只需使用Auth:user获取整个用户对象,不需要pull语句,您可以通过用户对象直接访问值

$user = Auth:user();
 $input = $request->only('inputed_number');
if($user->phone !== $input ) {
   //perform this code
}
如果要匹配所有用户的电话号码

//get all users where phone number matches
$users = User::where('phone', $input)->get();

// iterate through $users rows
foreach ($users as $user) {
    ///do some thing
}


我想将输入的电话号码与数据库中已有的所有电话号码进行匹配。这就是为什么我提取了电话数组,以便可以将其与数组列表进行匹配。我已经尝试了此操作,但它不起作用。您在$users对象中得到了什么,是否有任何错误。请尝试此$users=User::where('phone',“=”,$input)->get();尝试$request->input\u number