2014-10-27 136 views
1

我也有類似的這個帖子的問題: Laravel - last login date and time timestampLaravel事件監聽

總之,我的目的和問題是:

  1. 我有一個「的LogRecords」表在我的數據庫。
  2. 我的活動監聽器global.php只是在默認的「用戶」表上工作。
  3. 我希望我的事件監聽器能夠在我的「日誌記錄」表中插入數據。

我如何能做到這一點:

  1. 我應該配置哪些使用雄辯使用我的數據庫表?
  2. 或者我應該改變global.php

感謝您的支持。

--------------------更新--------------------

我意識到,在我的auth.php文件,默認的認證模式已經被設置爲:

'model' => 'User' 

,但我想聽取意見並與兩用戶的LogRecord model.So工作,當我嘗試在我的global.php文件中監聽事件,laravel正在自動嘗試與用戶模型。所以,我不得不來配置我的事件監聽器這樣的:

global.php文件的部分:

//First Example 
Event::listen('auth.login', function($user) 
{ 
    $userLogRecord = Logrecord::firstOrCreate(array('user_id' => $user->id)); 
    $userLogRecord->user_id = $user->id; 
    $userLogRecord->login_last_at = date('Y-m-d H:i:s'); 
    $userLogRecord->save(); 
}); 

//Second Example 
Event::listen('auth.logout', function($user) 
{  
    $userLogRecord = Logrecord::firstOrCreate(array('user_id' => $user->id)); 
    $userLogRecord->user_id = $user->id; 
    $userLogRecord->logout_last_at = date('Y-m-d H:i:s'); 
    $userLogRecord->save(); 
}); 

它工作了,但我認爲這不是一個好主意編輯我的聽衆那樣。 我的目的是聆聽並使用User和Logrecord模型進行一些處理。它現在爲我的目的服務,但我覺得我必須改進。

任何想法?

回答

1

@DemonDrake,

如果我理解正確的話,你只是想將數據添加到「日誌」表? 在最簡單的形式,答案是「是的,你會用雄辯的ORM爲

class Log extends Eloquent { 

    protected $table = 'log'; 

} 

或者是查詢生成器,甚至。 有許多的方面,這是可能的。我個人建議你退房https://laracasts.com/lessons

+0

我可以添加數據到我的日誌表中,但我想用事件監聽器來做到這一點。但我目前的事件監聽器正試圖將數據插入到默認用戶表中。我想我的聽衆與我的日誌類(模型) – 2014-10-27 13:55:08

+0

我假設你已經有聽衆,所以只是發生事件。這將有助於看到您現有的代碼,但我會這樣做: http://laravel.io/bin/aNB1N – 2014-10-27 16:36:48

+0

埃迪,謝謝你給我一些想法,我編輯的帖子,認爲我必須改善我的代碼。 – 2014-10-28 06:36:35