【发布时间】:2020-05-15 13:41:01
【问题描述】:
邮递员重新调整此错误
Illuminate\Database\QueryException: SQLSTATE[42S22]: 未找到列: 1054 'where 子句'中的未知列'api_token'(SQL:select * from
users其中api_token= B6eJj892tHBKvX186BYZgmqqqG8Iz4npy85ArvJS80boCT4UYNBD5CGDIdG6Dm5nlSi83cY3n0XTvsxj 并且users.deleted_at是文件中的空限制 1) /var/www/html/myapp/vendor/laravel/framework/src/Illuminate/Database/Connection.php 在第 669 行
我表中的列名是令牌。我还在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
【问题讨论】:
-
您的用户表中没有 api_token 列请创建迁移并更新用户表并设置 api_token,或者如果您选择使用不同的列名,请务必更新您的 API 的 storage_key 配置config/auth.php 配置文件中的选项。
-
我的表中有标记列,我不想更改列名。
-
对我来说这个设置工作正常,所以请重新确认你的令牌,也许你传递了错误的令牌,因为在相同的设置下它对我以及在我的教程中都有效
-
运行 php artisan config:cache 后,我的应用程序运行良好。
标签: php api authentication laravel-6