I'm using postman to try and make an API post request:
http://127.0.0.1:8000/api/auth/register?name=corbin&email=corbin@example.com&password=password
There must be a database connecting because I can migrate my db just fine. Using php artisan tinker
I can also add a new user just fine:
>>> $user = new User();
=> App\User {#3060}
>>> $user->name = "kyle";
=> "kyle"
>>> $user->email = "kyle@example.com"
=> "kyle@example.com"
>>> $user->email = "kyle@example.com";
=> "kyle@example.com"
>>> $user->password = bcrypt('password');
=> "$2y$10$VQ8i0wlUKOfMzz6s/AXNBekcAdDAah9EvCvLeOASu3t06x.eVMCFq"
>>> $user->save();
=> true
>>> User::all();
=> Illuminate\Database\Eloquent\Collection {#3080
all: [
App\User {#3081
id: 1,
name: "kyle",
email: "kyle@example.com",
email_verified_at: null,
created_at: "2020-04-29 06:15:03",
updated_at: "2020-04-29 06:15:03",
},
],
}
However when I try and create a record in postman I get this:
Illuminate\Database\QueryException: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: insert into
users
(name
,password
,updated_at
,created_at
) values (kyle, kyle@example.com, $2y$10$QfVSBr67zOJldKrxqjVVsO9pZ5QV9qOkvoCH./FPRZfSRVo1A4GqC, 2020-04-28 08:53:51, 2020-04-28 08:53:51)) in file /Applications/MAMP/htdocs/laravel-vue-spa/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 671
Here's my AuthController:
public function register(Request $request)
{
/*$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|',
'password' => 'required|string|min:6|confirmed'
]);*/
$user = new User();
$user->name = $request->name;
$user->email = $request->email;
$user->password = bcrypt($request->password);
$user->save();
/*if($user->save()){
return response()->json([
'message' => 'User was successfully created.',
'status_code' => 201
], 201);
} else {
return response()->json([
'message' => 'An error occured. Please try again.',
'status_code' => 500
], 500);
} */
}
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_spa
DB_USERNAME=root
DB_PASSWORD=password
I also tried switching DB_HOST=localhost
. In Sequel Pro my privileges are set to super. I've also tried doing a GET
request for User::all();
same ordeal.
Edit 1
config/database.php
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
I have also ran php artisan config:clear
and php artisan optimize:clear