Laravel没有使用正确的表

时间:2019-01-26 13:20:48

标签: php laravel artisan

Laravel选择了错误的表users表。我已将config/auth中的表切换为正确的表,但是由于某些原因,Laravel仍使用默认的users表。

代码

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;

class UserLoginController extends Controller
{
    protected $table = 'pupil';

    public function showLoginForm()
    {
        return view('home');
    }

    public function login(Request $request)
    {
        $this->validate($request, [
            'user' => 'required',
            'password' => 'required|min:3'
        ]);

        $user = User::where('accountName', $request->user)
            ->where('password', $request->password)
            ->first();

        if ($user) {
            Auth::login($user);
            return redirect()->route('neue_anmeldung');
        }

        return redirect()->back()->withInput('email');
    }
}

我收到以下错误消息。

  

SQLSTATE [42S02]:未找到基表或视图:1146表   'database1.users'不存在(SQL:从users中选择*,其中   accountName = 6001和password =密码限制1)

2 个答案:

答案 0 :(得分:1)

您的User模型已配置为使用users表。您在controller中定义了表格,这是错误的。您需要在protected $table = 'pupil';

中定义属性App\User.php

答案 1 :(得分:0)

默认情况下,eloquent将采用以下表格

For Example

如果您的型号名称是

User然后它将在数据库中搜索users

AdminUser然后它将在数据库中搜索admin_users

要更改tablename假定的默认eloquent

打开当前模型

Not Your Controller protected $table = 'yourTableNAme';

希望有帮助