完整的錯誤:Laravel錯誤:SQLSTATE [42S02]:基表或視圖沒有找到
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'quotesapp.admin' doesn't exist (SQL: select count(*) as aggregate from `admin` where `username` = Admin)
我知道錯誤是名字之間的不匹配,因爲它出現在錯誤日誌和它是如何定義的無處不在其他(在數據庫文件夾中,但我無法解決問題,我搜索周圍,發現this後,但即使我實施解決方案(如下所示)後,我不斷得到相同的錯誤。 Laravel 5.2。我的數據庫目錄中有一個admins
表,如下所示:
class CreateAdminsTable extends Migration
{
public function up()
{
Schema::create('admins', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
$table->string('username')->unique();
$table->string('password');
$table->rememberToken();
});
}
public function down()
{
Schema::drop('admins');
}
}
管理模式是這樣的:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Authenticatable;
class Admin extends Model implements \Illuminate\Contracts\Auth\Authenticatable
{
protected $table = 'admins';
use Authenticatable;
}
?>
這是導致拋出錯誤的相關路線:
Route::post('/admin/register', [
'uses' => '[email protected]',
'as' => 'register'
]);
這裏是postRegister
方法
public function postRegister(Request $request) {
$this->validate($request, [
'username' => 'required|unique:admin|max:30|min:3',
'password' => 'required|min:5',
'password_confirm' => 'required'
]);
$password = $request['password'];
$passwordConfirm = $request['password_confirm'];
if ($password !== $passwordConfirm) {
return redirect()->back()->with(['fail' => 'password fields do not match!']);
}
$admin = new Admin();
$admin->username = $request['username'];
$admin->password = $request['password'];
$admin->save();
return redirect()->route('index');
}
我已經在compo中運行php artisan migrate
ser,但是我得到了「無法遷移」的迴應。我試圖通過作曲家刷新數據庫,但無濟於事。表'管理員'顯示在phpmyadmin中。
更新1:添加完整的錯誤消息
@ Frosty619我也相信這是事實。將'unique:admin'更改爲'unique:admins'並讓我們知道這是否可行。 – samuraiseoul
非常感謝,這個作品(: – Frosty619