laravel - 未找到获取列:1054 未知列“”在“where 子句”中用于 laravel 护照身份验证
问题描述
我正在研究 laravel 护照认证。我的 laravel 版本是 6.0,护照版本是 8.0
用户.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\Hash;
use Illuminate\Notifications\Notifiable;
use DB;
use Auth;
use Session;
use Laravel\Passport\HasApiTokens;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use Notifiable, HasApiTokens, HasRoles;
protected $fillable = [
'id', 'name', 'email', 'password', 'phone', 'address_line_1',
'address_line_2', 'city', 'pincode', 'user_id',
];
protected $hidden = [
'password', 'remember_token',
];
protected $rememberTokenName = 'remember_token';
protected $casts = [
'email_verified_at' => 'datetime',
];
public function getAuthIdentifierName() {}
public function getAuthIdentifier(){}
public function setRememberToken($value){}
public function getRememberTokenName(){}
public function getAuthPassword() {
return $this->getAttribute('password');
}
public function getReminderEmail() {
return $this->getAttribute('email');
}
public function getRememberToken() {
return $this->getAttribute('remember_token');
}
}
配置/app.php
Laravel\Passport\PassportServiceProvider::class,
authServiceProvider.php
use Laravel\Passport\Passport;
use Carbon\Carbon;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Passport::routes();
Passport::tokensExpireIn(Carbon::now()->addDays(1));
Passport::refreshTokensExpireIn(Carbon::now()->addDays(10));
}
配置/auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
],
AuthAPI控制器
public function signup(Request $request)
{
$request->validate([
'name' => 'required|string',
'email' => 'required|string|email|unique:users',
'password' => 'required|string|confirmed'
]);
$user = new User([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password)
]);
$user->save();
return response()->json([
'message' => 'Successfully created user!'
], 201);
}
/**
* Login user and create token
*
* @param [string] email
* @param [string] password
* @param [boolean] remember_me
* @return [string] access_token
* @return [string] token_type
* @return [string] expires_at
*/
public function login(Request $request)
{
$request->validate([
'email' => 'required|string|email',
'password' => 'required|string',
'remember_me' => 'boolean'
]);
$credentials = request(['email', 'password']);
if(!Auth::attempt($credentials))
return response()->json([
'message' => 'Unauthorized'
], 401);
$user = $request->user();
$tokenResult = $user->createToken('Personal Access Token');
$token = $tokenResult->token;
if ($request->remember_me)
$token->expires_at = Carbon::now()->addWeeks(1);
$token->save();
return response()->json([
'access_token' => $tokenResult->accessToken,
'token_type' => 'Bearer',
'expires_at' => Carbon::parse(
$tokenResult->token->expires_at
)->toDateTimeString()
]);
}
api.php
Route::group([
'prefix' => 'auth'
], function () {
Route::post('login', 'Auth\AuthAPIController@login');
Route::post('sign-up', 'Auth\AuthAPIController@signup');
Route::group([
'middleware' => 'auth:api', 'cors', 'json.response'
], function() {
Route::get('/all-slider-images', 'HomeController@getSliderImages');
Route::get('/user', 'Auth\AuthAPIController@user');
});
});
家庭控制器.php
public function getSliderImages(){
try{
$images = SliderImage::where("deleted", 0)->get();
return response()->json(["status"=>200, "data"=> $images]);
}catch(Extension $e){
return response()->json(["status"=>500, "data"=> "System Error! Please try again!"]);
}
}
这是我的日志文件
[2020-12-18 12:11:20] local.ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `users` where `` = 28 limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `users` where `` = 28 limit 1) at C:\\xampp\\htdocs\\pressbell\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php:665)
[stacktrace] #0 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Connection.php(625): Illuminate\Database\Connection->runQueryCallback('select * from...', Array, Object(Closure)) #1 C:\\xampp\\htdocs\\pressbell\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php(334): Illuminate\\Database\\Connection->run('select * from
...', Array, Object(Closure)) #2 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(2140): Illuminate\Database\Connection- >select('select * from `...', Array, true) #3 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(2128): 照亮\Database\Query\Builder->runSelect() #4 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(2572): Illuminate\Database\Query\Builder ->Illuminate\Database\Query\{closure}() #5 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(2129): Illuminate\Database\Query \Builder->onceWithColumns(Array, Object(Closure)) #6 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Builder.php(521):Illuminate\Database\Query\Builder->get(Array) #7 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Builder.php(505): Illuminate\Database\Eloquent \Builder->getModels(Array) #8 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Concerns\BuildsQueries.php(143): Illuminate\Database\Eloquent\Builder->get (数组)#9 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Auth\EloquentUserProvider.php(52): Illuminate\Database\Eloquent\Builder->first() #10 C:\ xampp\htdocs\pressbell\vendor\laravel\passport\src\Guards\TokenGuard.php(139): Illuminate\Auth\EloquentUserProvider->retrieveById('28') #11 C:\xampp\htdocs\pressbell\vendor\laravel \passport\src\Guards\TokenGuard.php(94): Laravel\Passport\Guards\TokenGuard->authenticateViaBearerToken(Object(Illuminate\Http\Request)) #12 C:\xampp\htdocs\pressbell\vendor\laravel\passport\src\PassportServiceProvider.php(277): Laravel\Passport\Guards\TokenGuard->user(Object( Illuminate\Http\Request)) #13 [内部函数]: Laravel\Passport\PassportServiceProvider->Laravel\Passport\{closure}(Object(Illuminate\Http\Request), NULL) #14 C:\xampp\htdocs\pressbell \vendor\laravel\framework\src\Illuminate\Auth\RequestGuard.php(58): call_user_func(Object(Closure), Object(Illuminate\Http\Request), NULL) #15 C:\xampp\htdocs\pressbell\vendor \laravel\framework\src\Illuminate\Auth\GuardHelpers.php(60): Illuminate\Auth\RequestGuard->user() #16 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Auth \Middleware\Authenticate.php(62): Illuminate\Auth\RequestGuard->check() #17 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Auth\Middleware\Authenticate.php(41): Illuminate\Auth\Middleware\Authenticate->authenticate(Object(Illuminate\Http\Request), Array) #18 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Auth\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure), 'api') #19 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\ {closure}(Object(Illuminate\Http\Request)) #20 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Routing\Router.php(682): Illuminate\Pipeline\Pipeline-> then(Object(Closure)) #21 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Routing\Router.php(657):Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request)) #22 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Routing\ Router.php(623): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route)) #23 C:\xampp\htdocs\pressbell\vendor\laravel\framework \src\Illuminate\Routing\Router.php(612): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request)) #24 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src \Illuminate\Foundation\Http\Kernel.php(176): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request)) #25 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src \Illuminate\Pipeline\Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request)) #26 C:\xampp\htdocs\pressbell\app\Http\Middleware\Cors.php(18): Illuminate\Pipeline\Pipeline-> Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) #27 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): App\Http \Middleware\Cors->handle(Object(Illuminate\Http\Request), Object(Closure)) #28 C:\xampp\htdocs\pressbell\app\Http\Middleware\ForceJsonResponse.php(19): Illuminate\Pipeline\ Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) #29 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): App\Http\Middleware\ForceJsonResponse->handle(Object(Illuminate\Http\Request), Object(Closure)) #30 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http \Request)) #31 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate \Http\Request), Object(Closure)) #32 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline ->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) #33 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate \Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request),Object(Closure)) #34 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\ {closure}(Object(Illuminate\Http\Request)) #35 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware \ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure)) #36 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php (62): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) #37 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline \Pipeline.php(171): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->句柄(对象(Illuminate\Http\Request),对象(Closure))#38 C:\xampp\htdocs\pressbell\vendor\fideloper\proxy\src\TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate \Pipeline\{closure}(Object(Illuminate\Http\Request)) #39 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Fideloper\Proxy\ TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure)) #40 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(105): 照亮\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) #41 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel. php(151): Illuminate\Pipeline\Pipeline->then(Object(Closure)) #42 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request)) #43 C:\xampp\htdocs\pressbell\public\index.php(55): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request)) #44 C:\xampp\htdocs\pressbell\server .php(21): require_once('C:\\xampp\\htdocs...') #45 {main}
但我得到这个错误,
“消息”:“SQLSTATE [42S22]:未找到列:1054 'where 子句'中的未知列''(SQL:select * from
users
where ``= 28 限制 1)”,“异常”:“Illuminate\Database\QueryException ",
解决方案
从 中删除所有这些覆盖App\User.php
。除非您使用与默认值不同的任何东西,否则它不是必需的。此外,您不会在这些函数中返回任何内容。
public function getAuthIdentifierName() {}
public function getAuthIdentifier(){}
public function setRememberToken($value){}
public function getRememberTokenName(){}
推荐阅读
- jdbc - kafka-connect org.apache.avro.SchemaParseException:非法字符 $
- javascript - 无法阻止表单在点击后自动提交两次
- html - 如何使用 nodejs 解析 html 页面以查找 qr 码?
- c# - 使用多个 DefaultContractResolver 反序列化 JSON
- ansible - 如何解决具有特定属性的库存成员?
- reactjs - 当元素更改时,从数组映射的 React Native 动态视图不会更新
- c++ - 程序输出奇怪的字符
- python - 如何使二进制文件的路径在 Python 虚拟环境中保持一致?
- javascript - 在没有页面重新加载的情况下,Sapper 会话在生产构建中没有正确设置
- django - Django 陈旧的 CSRF 令牌