Php – SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘My_database_Name.posts’ doesn’t exist

laravellaravel-5PHP

I tried to generate CRUD for User table.
when I tried to validate request data i got Error in validation section.

Illuminate \ Database \ QueryException (42S02) SQLSTATE[42S02]: Base
table or view not found: 1146 Table 'My_database_Name.posts' doesn't
exist (SQL: select count(*) as aggregate from posts where
usr_email = testingadmin@test.com) Previous exceptions

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'My_database_name.posts' doesn't exist (42S02)

If I remove validation part the code work fine for me.

Thanks.

My Controller's update() code is

public function update( Request $request ,$user)
    {
        $request->validate([
            'usr_first_name' => 'required',
            'usr_last_name' => 'required',
            'usr_email' => 'required|unique:posts',
            'usr_phone' => 'required|numeric|min:2|max:5',
            'usr_address' => 'required',
            'usr_type' => 'required',
        ]);
        $user = User::where('id', $user)->first();

        $user->firstname    = $request->input('usr_first_name');
        $user->lastname     = $request->input('usr_last_name');
        $user->email        = $request->input('usr_email');
        $user->phone        = $request->input('usr_phone');
        $user->address      = $request->input('usr_address');
        $user->type         = $request->input('usr_type');
        $user->save();

        return redirect()->action('UserController@index');
    }

Best Answer

I can guess that your usr_email attribute do not belongs to posts table, it belongs to users table ($user->email = $request->input('usr_email');)

Fix

//...
'usr_email' => 'required|unique:users,email',
//..