laravel auth:api returns SQLSTATE[42S22]:找不到列:1054
laravel auth:api returns SQLSTATE[42S22]: Column not found: 1054
Postman 返回这个错误
Illuminate\Database\QueryException: SQLSTATE[42S22]: Column not found:
1054 Unknown column 'api_token' in 'where clause' (SQL: select * from
users
where api_token
=
B6eJj892tHBKvX186BYZgmqqqG8Iz4npy85ArvJS80boCT4UYNBD5CGDIdG6Dm5nlSi83cY3n0XTvsxj
and users
.deleted_at
is null limit 1) in file
/var/www/html/myapp/vendor/laravel/framework/src/Illuminate/Database/Connection.php
on line 669
我的 table 中的列名称是 token。我还在 config/auth.php
中配置了我的 storage_key
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'storage_key' => 'token',
'input_key' => 'token',
'hash' => false,
],
],
我的 ApiController.php 有这个代码
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ApiController extends Controller
{
public function __Construct() {
$this->middleware('auth:api');
}
public function user(Request $request) {
return $request->user();
}
}
我的api.php有
Route::get('user', 'ApiController@user');
我这样称呼我的api
http://localhost:8000/api/user?token=myGeneratedToken
如果您遇到同样的问题,请使用此命令清除缓存
php artisan config:cache
再试一次
Postman 返回这个错误
Illuminate\Database\QueryException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'api_token' in 'where clause' (SQL: select * from
users
whereapi_token
= B6eJj892tHBKvX186BYZgmqqqG8Iz4npy85ArvJS80boCT4UYNBD5CGDIdG6Dm5nlSi83cY3n0XTvsxj andusers
.deleted_at
is null limit 1) in file /var/www/html/myapp/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 669
我的 table 中的列名称是 token。我还在 config/auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'storage_key' => 'token',
'input_key' => 'token',
'hash' => false,
],
],
我的 ApiController.php 有这个代码
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ApiController extends Controller
{
public function __Construct() {
$this->middleware('auth:api');
}
public function user(Request $request) {
return $request->user();
}
}
我的api.php有
Route::get('user', 'ApiController@user');
我这样称呼我的api http://localhost:8000/api/user?token=myGeneratedToken
如果您遇到同样的问题,请使用此命令清除缓存
php artisan config:cache
再试一次