Php Laravel:如何从结果访问表主键

Php Laravel:如何从结果访问表主键,php,mysql,laravel,Php,Mysql,Laravel,使用$users=users::with('employee')->get();' 我可以获得用户列表及其各自的员工记录 我可以迭代 Model: User Primary Key: emp_no (alphanumeric) Fields: password, remember_token Model: Employee Primary Key: emp_no (alphanumeric) Fields: first_name, last_name 正如我所评论的,这两个表都试图显示emp

使用
$users=users::with('employee')->get();'
我可以获得用户列表及其各自的员工记录

我可以迭代

Model: User
Primary Key: emp_no (alphanumeric)
Fields: password, remember_token

Model: Employee
Primary Key: emp_no (alphanumeric)
Fields: first_name, last_name

正如我所评论的,这两个表都试图显示emp_no,这是两个表的主键,但都不起作用。

缺少一些信息,我们在Laravel的IRC频道聊了一会儿。问题可能是模型仍然有
$incrementing=true
,并且他的主键是一个字符串。$incrementing属性需要设置为false

此外,Eloquent假设主键是一个递增的整数值,这意味着默认情况下主键将自动转换为int。如果希望使用非递增或非数字主键,则必须将模型上的public$incrementing属性设置为false


来源:

Laravel Eloquent Returns集合,您必须将$users转换为数组。比如
$users->toArray()
然后返回
$users
查看,您可以对其进行迭代{{{$user->employee\u no}}//不工作,因为没有“employee\u no”字段,请使用“emp\u no”。类似地{{$user->employee->employee\u no}}//不工作,因为您使用的是“employee\u no”而不是“emp\u no”。您的表格有“emp_no”字段,所以请使用此字段。@muhammadinaamunir这只是一个输入错误,对不起,您能显示模型文件吗?i、 e.Employee.php和User.phpmodel用户只有
return$this->hasOne('App\Employee','emp_no')
employee
函数中,模型employee为空,只有样板文件我发现了问题,很抱歉我在IRC频道上的dc、ISP问题。现在的问题是,我没有将
$keyType
设置为string,这就是为什么每当我尝试访问emp_no时,它总是给出0而不是假定的字母数字值
@foreach($users as $user)
    {{ $user->emp_no}} //Not working, always returns 0
    {{ $user->password }} //Working
    {{ $user->remember_token }} //Working
    {{ $user->employee->emp_no}} //Not working, always returns 0
    {{ $user->employee->first_name }} //Working
    {{ $user->employee->last_name }} //Working
@endforeach