Compoships 一个让 Laravel Eloquent (HasMany,BeLongTo)支持多键关联的方案
先放个地址:GitHub
原来我们模型关联只支持单个键的关联,像教程中这样
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* 获取该用户的所有文章。
*/
public function posts()
{
return $this->hasMany('App\Post');
}
}
但当有时我们需要组合键作为关联时Laravel目前是不支持的
但当我们使用 Compoships
这个插件后就可以实现我们多键关联模型了
安装:
composer require awobaz/compoships
将模型改成如下:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use \Awobaz\Compoships\Compoships;
/**
* 获取该用户的所有文章。
*/
public function posts()
{
return $this->hasMany('App\Post', ['id', 'city_id'], ['user_id', 'city_id']);
}
}
如上面 User
与 Post
, 请确保两个模型都使用use \Awobaz\Compoships\Compoships;
的 trait
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: