先放個地址: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