首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel Auth::user()->id对自定义id返回0

Laravel是一种流行的PHP开发框架,Auth::user()->id是Laravel框架中用于获取当前用户的ID的代码。根据提供的问答内容,当使用自定义的ID字段时,Auth::user()->id可能返回0的原因有以下几种可能性:

  1. 数据库字段映射问题:Laravel默认使用名为"id"的字段作为用户表的主键,如果你的用户表使用了自定义的ID字段,需要在对应的模型中进行映射。你可以通过在用户模型中定义一个getKeyName()方法来指定自定义的ID字段,例如:
代码语言:txt
复制
public function getKeyName()
{
    return 'custom_id';
}
  1. 认证配置问题:Laravel的认证系统需要正确配置才能正常工作。请确保在config/auth.php文件中的providers数组中,对应的用户提供者配置了正确的表名和ID字段,例如:
代码语言:txt
复制
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
        'table' => 'users',
        'id' => 'custom_id',
    ],
],
  1. 认证用户数据问题:如果以上配置都正确,但仍然返回0,可能是因为用户表中的自定义ID字段没有正确赋值。请确保在用户注册或登录时,正确地将自定义ID字段赋值为相应的值。

总结起来,当使用自定义ID字段时,如果Laravel的Auth::user()->id返回0,需要检查数据库字段映射、认证配置和用户数据是否正确设置。如果问题仍然存在,可以进一步检查Laravel框架的版本和相关文档,或者向Laravel社区寻求帮助。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,建议您访问腾讯云官方网站,查找与云计算相关的产品和服务,以获取更多详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

解决laravel id非自增 模型取回为0 的问题

问题 laravel5.2 中 如果一个模型的id 为string等非自增类型时候 使用模型的find方法 会返会0 样例代码: $a=Model::find('blcu'); echo $a-...id; //结果为0 原因查找 通过var_dump(a)发现a)发现a ["attributes":protected]= array(16) { ["id"]= string(4) "blcu..." 也就是数据其实是读取出来了 只是- id取得时候 变成了0 查看Model的 getAttribute 方法,此方法指向了 getAttributeValue public function getAttributeValue...getIncrementing()) { //如果Model了的$incrementing字段为True return array_merge([ $this- getKeyName() = 'int', //返回...非自增的时候 laravel 会把字符串转为int 所以输出了0 解决方案 给模型生命的时候添加 public $incrementing=false; 即可解决 以上这篇解决laravel id非自增

76231

为什么 insert 配置 SELECT LAST_INSERT_ID() 返回0呢?

今天这个问题主要体现在大家平常用的Mybatis,在插入数据的时候,我们可以把库表索引的返回值通过入参对象返回回来。但是通过我自己手写的Mybatis,每次返回来的都是0,而不是最后插入库表的索引值。...通常只要配置的没问题,返回对象中也有对应的 id 字段,那么就可以正确的拿到返回值了。PS:问题就出现在这里,小傅哥手写的 Mybatis 竟然只难道返回一个0!...二、分析:诊断异常 可能大部分研发伙伴没有阅读过 Mybatis 源码,所以可能不太清楚这里发生了什么,小傅哥这里给大家画张图,告诉你发生了什么才让返回的结果为0的。...,其实是不对的,没法获取到插入后的索引 ID,只有在一个链接或者一个事务下(一次 commit)才能有事务的特性,获取插入数据后的自增ID。...() 所以最终的查询结果为 0 了就!

87830

Laravel jwt 多表(多用户端)验证隔离的实现

会引发这个问题的原因是 laravel 的 jwt token 默认只会存储数据表的主键的值,并没有区分是那个表的。所以只要 token 里携带的 ID 在你的用户表中都存在,就会导致越权验证。...这个 token 通过你的验证中间件时,你使用不同的 guard 就能拿到对应表 id 为 1 的用户(了解 guard 请查看 laravel 的文档)。...,这里是返回的是主键 ‘id’, getJWTCustomClaims:返回包含要添加到 jwt 声明中的自定义键值对数组,这里返回空数组,没有添加任何自定义信息。...= $role) { throw new UnauthorizedHttpException('jwt-auth', 'User role error'); } return $next...以上就是本文的全部内容,希望大家的学习有所帮助。

2K31

laravel5.5安装jwt-auth 生成token令牌的示例

providers jwt-auth 包已经有一些具体实现,可用来实现各种需求。只要遵循相关接口,我们就可以覆盖这些具体实现。 providers.user 指定基于主题声明,来查找用户的实现。...providers.jwt 完成 token 的编码和解码的繁重工作 providers.auth 通过凭证或 id 来认证用户 providers.storage 用于驱动黑名单,并存储 token...= User::first(); $token = JWTAuth::fromUser($user); 上面的 2 个方法也有第二个参数,可以传递一个 ‘自定义声明’ 的数组 在解码 token 时,...注意:添加大量的自定义声明,将增加 token 的大小 创建一个基于任意你喜欢的内容的 token 作者给我们提供了底层类和方法的访问,来提供高级的、可自定义的功能。...\RefreshToken', ]; 以上这篇laravel5.5安装jwt-auth 生成token令牌的示例就是小编分享给大家的全部内容了,希望能给大家一个参考。

3.2K31

在程序设计中使用Interface

\Contracts\Auth\UserProvider 以及框架自带的 App\User模型所实现的Illuminate\Contracts\Auth\Authenticatable契约。...\Foundation\Auth\Authenticatable(User Model的父类) 所以在自己开发的项目中,如果Laravel提供的用户认证系统无法满足需求,你可以根据需求定义看守器和用户提供器的实现类...,比如我之前做的项目就是用户认证依赖于公司的员工管理系统的API,所以我就自己写了看守器和用户提供器契约的实现类,让Laravel通过自定义的Guard和UserProvider来完成用户认证。...', '=', \Auth::user()->id)->get(); return View::make('order.index', compact('orders')); }...(User $user) { Order::where('user_id', '=', $user->id)->get(); } } 将接口的实现绑定到Laravel的服务容器中

1.1K10

【译】深入研究 Laravel 的依赖注入容器

例如,Laravel使用它来确保无论什么时候将单实例Container实例注入到类中都会返回它: $container->instance(Container::class, $container);...'); }); 在这里,你不能传递一个类或者一个命名依赖(例如 give('database.user')),因为它会作为一个字面值返回,要做到这一点,你将不得不使用闭包: $container...(Session::class, $auth, 'setSession'); return $auth; }); 它也返回现有的实例或绑定(如果有的话),所以你可以这样做: // This only...(Post::class, ['id' => 2]); Note: 在 Laravel 5.3 以及以下版本中,它很简单 make($class,$parameters), 但在 Laravel 5.4...下面这些是其余共用方法的总结: bound() 如果类或名称使用 bind(), singleton(), instance() 或 alias()绑定, bound()将会返回true if (!

4.6K70

Laravel 5.5 异常处理 & 错误日志的解决

简介 Laravel 默认已经为我们配置好了错误和异常处理,我们在 App\Exceptions\Handler 类中触发异常并将响应返回给用户。...当然,你也可以按照自己的需要检查异常类型或者返回自定义响应: /** * 将异常渲染到HTTP响应中 * * @param \Illuminate\Http\Request $request *...自定义 HTTP 错误页面 在 Laravel 中,返回不同 HTTP 状态码的错误页面很简单,例如,如果你想要自定义 404 错误页面,创建一个 resources/views/errors/404....$id); return view('user.profile', ['user' = User::findOrFail($id)]); } } 该日志记录器提供了 RFC 5424 中定义的八种日志级别...', ['id' = $user- id]); 访问底层 Monolog 实例 Monolog 有多个可用于日志的处理器,如果需要的话,你可以访问 Laravel 使用的底层 Monolog 实例:

4.4K31

JSON Web Token(JWT)教程:一个基于Laravel和AngularJS的例子

我们可以自定义自己的 claims,如user IDs, user roles, 或者其他任何信息。...由于HTTP协议是无状态的,因此需要有一种存储用户信息的机制,以及登录后每个后续请求用户进行身份验证的方法。大多数网站使用Cookie来存储用户的会话ID(session ID)。...服务器使用在用户浏览器上设置的cookie进行响应,并包含用于标识用户的会话ID。 在每个后续请求中,由于用户数据存储在服务器上,服务器需要找到该会话并其进行反序列化。...然后,服务器验证令牌,如果它有效,则将安全资源返回给客户机。 基于token认证的优点 无状态,易于扩展:token包含用于标识用户的所有信息,从而消除了会话状态的需要(即,无需会话状态)。...---- 使用Laravel 5和AngularJS的JSON Web Token示例 (译注:由于Laravel和AngularJS不熟悉,这里的以英文原文为准,同时若发现这里有错误,欢迎随时提出。

30.5K10

如何扩展Laravel Auth来满足项目需求

Auth系统,所以或多或少地我们都会需要在自带的看守器和用户提供器基础之上做一些定制化来适应项目,我会列举一个在做项目时遇到的具体案例,在这个案例中用自定义的看守器和用户提供器来扩展了Laravel的用户认证系统让它能更适用于我们自己开发的项目...中来: class user extends Authenticatable { /** * 覆盖Laravel中默认的getAuthPassword方法, 返回用户的password...系统中, Auth::provider方法将一个返回用户提供器对象的闭包作为用户提供器创建器以给定名称注册到Laravel中,代码如下: class AppServiceProvider extends..., 在系统中会有对外提供API的模块,在这种情形下我们一般希望用户登录认证后会返回给客户端一个JSON WEB TOKEN,每次调用接口时候通过这个token来认证请求接口的是否是有效用户,这个需求需要我们通过自定义的...的用户认证系统,目的是让大家Laravel的用户认证系统有一个更好的理解知道在Laravel系统默认自带的用户认证方式无法满足我们的需求时如何通过自定义这两个组件来扩展功能完成我们项目自己的认证需求。

2.7K20
领券