2014-07-18 53 views
0

我有一個令人難以置信的問題。Laravel 4 - 多對多有時間戳或多對一有歷史記錄

方案: 我有一個需要從流程轉移到流程的訂單。一個訂單一次只能在一個進程中進行,但一個進程在任何時候都可以有多個訂單。

但是,我還需要一個訂單何時登陸哪個進程的歷史記錄。

不知何故,我無法理解這一點,所以如果任何人都可以給我一個關於你會朝哪個方向前進的想法,我將非常感激。


我也注意到,當我創建部門爲我的用戶,我department_user表,其中我添加時間戳(),它實際上並沒有更新的時間戳當用戶與部門之間建立一種新的關係。有什麼方法可以使這個工作?因爲我認爲這兩個問題是非常相關的。

回答

1

你可以設置你的orders表中有一列process_id,然後設置的關係爲:

class Order extends Eloquent 
{ 
    public function process() 
    { 
     return $this->belongsTo('Process'); 
    } 
} 

class Process extends Eloquent 
{ 
    public function orders() 
    { 
     return $this->hasMany('Order'); 
    } 
} 

關於順序/過程的歷史,我想移動的時候寫的是到一個單獨的歷史記錄表訂購新的流程。

class OrderProcessHistory extends Eloquent 
{ 
    protected $fillable = array(
     'order_id', 
     'process_id' 
    ); 

    protected $timestamps = true; 
} 

然後,只需像...

OrderProcessHistory::create(array('order_id' => $order->id, 'process_id' => $process->id));

+0

感謝名單。所以歷史表會有一個order_id和process_id和date_created,而且只要我手動更改過程,我就會寫入它。如果這可能會自動發生,那將會很好。 – narfie

+1

剛剛添加了更多的東西,是的! – benJ

+0

老兄,你搖滾!謝謝。 – narfie