【问题标题】:How to add relationships in Laravel?如何在 Laravel 中添加关系?
【发布时间】:2012-12-07 12:20:02
【问题描述】:

我尝试按照在 http://net.tutsplus.com/tutorials/php/build-web-apps-from-scratch-with-laravel-the-eloquent-orm/http://laravel.com/docs/database/eloquent 找到的文档进行操作,但它似乎不起作用。

class User extends Eloquent 
{
    public function role()
    {
         return $this->has_one('Role', 'role_code');
    }
}

class Role extends Eloquent 
{
    public function user()
    {
          return $this->belongs_to('User', 'role_code');
    }
}

在我的数据库中,我在用户和角色表中都有 role_code 列。 我在我的控制器$test = User::find(1)->role()->get(); 中使用了这个命令,但它只显示一个空白数组。我确定我的用户和角色表中都有一个条目。

我错过了什么?你们能帮帮我吗?

【问题讨论】:

  • 尝试在 config/application 中打开分析器并查看该行生成的查询。提供的代码看起来不错。
  • 我同意 TLReg。尽管如此,或许可以尝试使用->first(); 而不是->get();
  • 也许使用小写的表名(只是一个好习惯),除此之外,sn-p 对我来说看起来不错。
  • @user9507 - 请接受之前对您提出的一些问题的回答。人们花时间帮助你,所以你应该花一些时间来帮助他们。

标签: php laravel


【解决方案1】:

您是否为角色表定义了关键字段?您向我们展示的应该可以工作如果角色表的键是$id。如果没有,您需要在 Role 类中添加如下内容:

public static $key = 'role_code';

(我假设如果您使用非常规的外键定义,那么您可能也有非常规的主键定义。)

【讨论】:

    猜你喜欢
    • 2018-12-30
    • 2018-05-01
    • 1970-01-01
    • 2016-07-13
    • 2021-10-17
    • 2013-01-03
    • 2014-08-20
    • 1970-01-01
    • 2020-02-28
    相关资源
    最近更新 更多