繁体   English   中英

LARAVEL 7.0 传递给 Illuminate\\Auth\\SessionGuard::login() 的参数 1 必须实现接口 Illuminate\\Contracts\\Auth\\Authenticatable,给定数组

[英]LARAVEL 7.0 Argument 1 passed to Illuminate\Auth\SessionGuard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, array given

完全错误是:

传递给 Illuminate\\Auth\\SessionGuard::login() 的参数 1 必须实现接口 Illuminate\\Contracts\\Auth\\Authenticatable,给定数组,在 C:\\laravel\\deliver-boo\\vendor\\laravel\\ui\\auth-backend\\RegistersUsers 中调用第 41 行的 .php

在此处输入图片说明

这个想法是创建一个用于交付的应用程序,因此在这种情况下,用户(应该是真实的餐厅)将自己注册到应用程序并添加他所有的餐厅信息(如增值税等)。

我所做的基本上是修改 Laravel 标准用户注册表单,以便它可以获取额外的字段并将其发送到数据库中的表中。 Users 表也与表 Categories 有多对多的关系,这个想法是用户(餐厅)可以以相同的形式注册自己和他的相关类别(素食主义者、素食主义者、意大利人……)。

(为了使此屏幕截图更清晰,某些字段已被隐藏)。

PS 我知道要选择多个值,我应该使用复选框而不是选择,这只是一个临时解决方案。

在此处输入图片说明

在 RegisterController.php 中的代码中,我在第 84 行创建了一个新用户,并尝试将该类别附加到第 104 行的数据透视表 category_user,然后返回用户。

在此处输入图片说明

为了实现选择类别的可能性,我必须修改 RegistersUser.php,在第 9 行我传递了 Category 模型,然后在 showRegistrationForm() 中传递了第 25 行的所有类别并将其返回到寄存器.blade.php 视图。

现在,错误的产生是因为第 42 行的函数出错了,这个函数应该负责身份验证(不确定)。

在此处输入图片说明

无论如何,每个数据都正确地进入数据库,在表中,并且在数据透视表 user_category 中也生成了关系,但是新用户 Laravel 不会自动登录,而是会生成错误。

错误在第 106 行,compact('new_user') 正在返回数组,您必须返回 $new_user,一切都会正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM