我使用本教程在Laravel:Laravel认证要点中创建了我的用户登录。因此,我有一个SessionController
,它包含create
、store
和destroy
方法,分别用于显示表单、登录和输出。
但是在本教程中没有模型,验证和Auth::attempt
在控制器中。这感觉不太对。我无法创建Session
模型,因为Session
类已经存在。
我应该将登录/输出逻辑放在User
模型中,还是有其他符合MVC体系结构模式的方法?
发布于 2014-09-02 15:49:45
首先,记住(或知道)你可以改变拉拉维尔的一切。如果需要使用Session表的会话模型,请转到app/config/session.php,并将laravel_sessions表更改为laravel_sessions:
'table' => 'laravel_sessions',
现在人们的做法不同了,方法每天都在改进,你做代码的方式必须适合你。如果你觉得你看到别人这样做是不对的,那就改变它,拉拉维尔给你力量去改变和做你自己的事情。如果你觉得你找到了一个更好的方法,分享它。
这是一段2013年的视频,今天杰弗里正在以一种完全不同的方式进行认证。注册一个乳突帐户,并采取完整的建造一个拉拉布克系列视频,看看他现在是如何做到这一点。
本教程中没有会话模型,因为他没有在会话表中存储会话(成功登录)。
在本教程中,他从不接触用户模型,因此在用户模型中没有登录。他唯一用于身份验证的是Auth::attempt()
,这是一种Laravel方法,在内部使用用户模型(M)来查找用户并检查密码是否匹配。他正在使用会话控制器 (C),以及与登录(或登录)和显示登录视图( (V) )相关的所有内容都是在该特定控制器内完成的。
如果对您来说更容易,您可以将SessionsController重命名为LoginController,我本人并不真正喜欢会话的名称进行登录,但这只是品味问题,而不是代码正确性问题。
话虽如此,我在视频中并没有看到MVC (或者其他人本周喜欢叫它的名字)的问题。
编辑回答评论:
模型的目的是为了数据,没有数据,没有模型。在Laravel和一个数据库管理系统中,是的,没有表,没有模型。例如,在客户机服务器API的上下文中,您的服务器API (Laravel,Rails.)将为您的客户端模型提供数据(角,EmberJS.),因此,不会有与客户端模型直接相关的表,但仍然是一个模型。
但在这种情况下,您正在通过服务,身份验证服务访问模型,用户模型。
https://stackoverflow.com/questions/25625899
复制相似问题