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

时间:2017-05-25 05:37:49

标签: php mysql laravel

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

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

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

我可以按

进行迭代
@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

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

1 个答案:

答案 0 :(得分:0)

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

  

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

来源:https://laravel.com/docs/5.4/eloquent