【问题标题】:SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' where clauseSQLSTATE [42S22]:找不到列:1054 未知列 '0' where 子句
【发布时间】:2021-03-29 12:57:24
【问题描述】:

您好,我在 laravel 中遇到了与我的数据库有关的问题。

这是我的登录控制器:

        class LoginController extends Controller
{
    function index()
    {
        return view('login');
    }

    function checklogin(Request $request)
    {

        $this->validate($request, [
            'name' => 'required',
            'password' => 'required'
        ],
            ['name.required' => 'Gebruikersnaam is niet ingevuld of niet goed.', 'password.required' => 'Wachtwoord is niet ingevuld of niet goed.']);

        $user_data = array([
            'name' => $request->get('name'),
            'password' => $request->get('password')
        ]);


        if (Auth::attempt($user_data)) {
            return redirect('login/succeslogin');

        } else {
            return back()->with('error', 'Verkeerde login gegevens!');
        }

    }

    function succeslogin()
    {
        return view('succeslogin');
    }

    function logout()
    {
        Auth::logout();
        return redirect('login');
    }

}

这是我的登录模型:

    class Login extends Model
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}

这是 SQLSTATE 错误: sqlerror

这就是我这样做时发生的事情:

dd($user_data);     
$user_data = array([
            'name' => $request->get('name'),
            'password' => $request->get('password')
        ]);

dump

所以我在这里和那里尝试了一些东西,但到目前为止没有任何效果。 似乎它在某处制作了一个额外的数组,但我找不到它.. 有人知道如何解决这个问题吗?

【问题讨论】:

  • “好像它在某处创建了一个额外的数组,但我找不到它。” array([])

标签: sql laravel model controller


【解决方案1】:

您将凭证数组包装在一个额外的数组中。删除额外的数组包装:

$user_data = [
    'name' => $request->get('name'),
    'password' => $request->get('password')
];

【讨论】:

  • 谢谢,至少它现在做了一些事情,我确实得到了另一个错误..它现在说 Argument 1 传递给 Illuminate\Auth\EloquentUserProvider::validateCredentials() 必须是 Illuminate\Contracts\Auth 的一个实例\Authenticatable,给定 App\Login 实例,在 C:\laragon\www\SDE2\vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php 中调用
  • 您用于身份验证的任何模型都必须实现Illuminate\Contracts\Auth\Authenticatable 接口...检查默认用户模型以查看
  • 请您停止撤消我的近距离投票。这是 stackoverflow.com/questions/36065951/… 的明显副本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2019-08-18
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 2020-06-08
相关资源
最近更新 更多