我有一個現有的數據庫與一個相當糟糕的架構,我不能改變。我想通過Eloquent來使用它。在使用這個數據庫時,我需要爲所有查詢添加幾個關節,如下所示:如何在每個查詢的默認情況下設置Eloquent中的連接?
<?php
class SomeModel extends Eloquent {
protected $table = 'users';
protected $primaryKey = 'index';
public $timestamps = FALSE;
function __construct($attributes = array())
{
parent::__construct($attributes);
$this->leftJoin('sites', 'sites.Siteindex', '=', 'users.index');
$this->leftJoin(DB::raw('(`lookups` `l`)'), function($join){
$join->on('l.value', '=', 'users.type')->where('l.fieldname', '=', 'user_type');
});
}
}
是否有可能?
什麼是這兩個表之間的關係類型的稱呼呢? – phaberest 2014-11-25 12:38:47
@phaberest沒有真正的關係,只是一堆關節。 – user1692333 2014-11-25 12:40:07
無論如何,你可以嘗試使用'hasOne()'和'belongsTo()',但是你需要有兩個模型,每個模型一個。在'User'模型中,使用名爲'sites'的方法,並在其內部返回$ this-> hasOne('Site','sites','Siteindex');',在'Site'模型中做相反的操作,但是在'users'方法中有'return $ this-> belogsTo('User','users','index');''。 – phaberest 2014-11-25 13:01:30