php – Laravel表关系

我有3张桌子:

users
leads
users_leads

用户表上:

---------------
-- id | name --
-- 1  | doe  --
-- 2  | joe  --
---------------

在引线表上:

----------------
-- id | type  --
-- 1  | house --
-- 2  | condo --
-- 3  | house --
----------------

在users_leads表上:

----------------------------
-- id | user_id | lead_id --
-- 1  | 1       | 1       --
-- 1  | 1       | 2       --
-- 1  | 2       | 3       --
----------------------------

然后我有我的模特:

User.PHP
Lead.PHP
UsersLead.PHP

在model / UsersLead.PHP

class UsersLead extends Eloquent {
   public function leads()
   {
      return $this->belongsTo('Lead');
   }
}

在model / Lead.PHP

class Lead extends Eloquent {
   public function userslead()
   {
      return $this->hasMany('UsersLead');
   }
}

然后我试着运行它:

$data = Lead::all()->userslead;

Laravel抛出这个错误

Undefined property: Illuminate\Database\Eloquent\Collection::$userslead

如何使用雄辩的ORM运行查询.获得属于特定用户的所有潜在客户?

有人可以帮忙吗?谢谢.

解决方法:

你需要多对多的关系:

在您的用户模型中:

class User extends Eloquent {

    public function leads()
    {
        return $this->belongsToMany('Lead');
    }

}

在您的Lead模型中:

class Lead extends Eloquent {

    public function users()
    {
        return $this->belongsToMany('User');
    }

}

然后从您的控制器:
利用多对多的关系.

$leads = User::find(1)->leads;

重要:

此关系需要三个数据库表:users,leads和lead_user. lead_user表派生自相关模型名称的字母顺序,并且应具有user_id和lead_id列.

参考:

http://laravel.com/docs/eloquent#many-to-many

迭代项目

foreach ($leads as $lead)
{
    dd($lead);
}

更多信息:

http://laravel.com/docs/eloquent#working-with-pivot-tables

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...